Add Content Loader to ingest raw content file
In some marginal listing cases (Nix or Guix for now), we can receive raw file to ingest. This commit adds a loader to ingest those. The output of the ingestion is a snapshot with 1 branch, one HEAD branch targetting the file content ingested.
This expects to receive a mandatory 'integrity' field. It is used to check the content match the declaration.
This can also optionally receive a list of mirror urls in case the main origin url is no longer available. Those mirror urls are solely used as fallback to retrieve the content.
Note: For the integrity field, some future adaptations will be needed in that code. It's kept out of the scope of this diff to avoid depending on a new release of the model [1]
Related to T3781 Supersedes !446 (closed)
Migrated from D8581 (view on Phabricator)