Refactor: MockCatalog for Unit Test Suite

This takes the already implemented `MockCatalog` class and generalises it to work for various unit test sets requiring catalog objects.
Currently the `MockCatalog` by far does not implement the full functionality of the real `Catalog` classes. Furthermore it can only be used as a templated replacement, as it doesn't inherit from the standard `AbstractCatalog` class. Potentially this is going to be necessary in the future, perhaps along with a higher unit test coverage of the client code.

For now, `MockCatalogs` can form a catalog hierarchy with "nested"  `MockCatalogs` and they might contain file stubs along with file chunk stubs. Neither do these files stubs have any notion of paths nor are the file chunk stubs associated to any file stub what so ever. All of this was not necessary yet, since I was only interested in the referenced hashes of each `MockCatalog` and its global nested catalog structure.
Going to be fixed in a follow up Pull Request