storage: Add methods to compute directories/revisions diff
This commit adds the implementation of an efficient algorithm for comparing
two directory trees in order to compute the list of introduced file changes
in terms of addition / deletion / modification/ renaming.
It can be found in the diff module located in the new namespace
swh.storage.algos
That algorithm is used to extend the storage API with the following methods:
- diff_directories: compute diff between two arbitrary directories
- diff_revisions: compute diff between two arbitrary revisions
- diff_revision: compute diff between a revision and its first parent
Related T921
Closes D295