Add a function to retrieve a full snapshot
Summary:
This function wraps the paginating branch listing API to do its work. It's in
swh.storage.algos because it should be done client-side rather than server-side.
The tests are fairly simple, and mostly add a bunch of tooling around hypothesis
to generate data that conforms to the swh data schema. Those things could
probably be adequately moved to a new submodule of swh.model.
Test Plan: new tests added
Reviewers: anlambert
Differential Revision: https://forge.softwareheritage.org/D551