Feature: Historic Catalog Traversal

This extends the `CatalogTraversal<>` template with functionality needed for the garbage collection. Namely it can now traverse historic catalogs in different configurations. Furthermore it factors out the catalog fetching logic into an extra class ([Strategy Pattern](http://en.wikipedia.org/wiki/Strategy_pattern)) for testability of `CatalogTraversal<>`. Eventually there is a new unit test set for `CatalogTraversal<>`.

Main new features:
* Traverse historic revisions up to `<n>` levels
* Traverse the complete catalog history
* Avoid revisiting of catalogs created in earlier revisions and reused in new ones
* Testability improvements of `CatalogTraversal<>`