package.tar: Add a generic archive loader implementation (merge with gnu's)
In the end, assuming we push the parsing 'version' logic within the gnu lister (D2147), we can have a sufficientely generic 'tar' loader as the following.
For more specific use case than gnu's, it can be passed a list of keys to use to build a composite primary key. That primary key is solely used to check if we already downloaded the artifacts or not.
Those default keys are the one needed for gnu origins.
When !105 (closed) lands, we will have the choice to either 1. pass along that list of keys for each scheduled tasks. Or 2. even create in this module a dedicated task which set those.
I prefer 1. as it's more explicit.
Related D2147 Related !105 (closed) Related T1389
Depends on swh-loader-core!37 (closed) Depends on D2156 Depends on swh-loader-core!38 (closed)
Test Plan
tox
Migrated from D2145 (view on Phabricator)