Write a specification of extrinsic origin metadata storage.
This is based on my understanding of how it currently works, and this comment by @moranegg: https://forge.softwareheritage.org/!112#inline-3321
I introduced the following changes:
- introduced the concept of "gatherer" as a metadata provider, as a catch-all for everything that does not fit in the other types, eg. if we decide on implementing this: https://forge.softwareheritage.org/swh/devel/swh-lister#833 We can discard it afterward if we don't need it.
- Dropped the concept of 'tool'. As far as I understand, they are an intermediary between the provider and the SWH archive. IMO they only complicate stuff if we plan on extracting metadata from providers without any change.
- Changed the described endpoints to drop the concept of "provider id" (you know I don't like extrinsic identifiers by now :) )
- Changed the described endpoints to give consistent names to the parameters.
Resolves T1737.
Migrated from D1509 (view on Phabricator)