Some fixes and improvements regarding recursive directory iteration
implemented in the storage.algos.dir_iterators sub-module.
- _empty_dir_hash variable did not have correct type (str instead of bytes) so empty directory test based on hash comparison was always failing
- in the step method of DirectoryIterator, no need to push a new frame for an empty directory as this will stop the iteration
- add Python iterator protocol support in the DirectoryIterator class in order to easily visit in a recursive way any directory stored in the archive.
- add convenient function dir_iterator wrapping the instantiation of the DirectoryIterator class
- add tests
Those changes are needed to use client-side iteration in the directory
cooker from the vault.
Related T1177