Add Directory Loader to allow tarball ingestion as Directory
In some marginal listing cases (Nix or Guix for now), we can receive raw tarball 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 ingested directory (contained within the tarball).
This expects to receive a mandatory 'integrity' field. It is used to check the tarball received out of the origin.
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 tarball.
Related to T3781 Depends on D8581
Migrated from D8584 (view on Phabricator)