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