add TraversePruned() to traverse 'all the rest'
add documentation
TEST: unit tests for TraversePruned()
Merge pull request #498 from reneme/feature-traverse_pruned

Feature traverse pruned

This is another addition for the CatalogTraversal<> template to make it usable for the garbage collection. It keeps track of all pruned catalogs that were not traversed due to history pruning. All these catalogs can be traversed using CatalogTraversal<>::TraversePruned() afterwards.
The idea is to traverse all catalogs (in revision granularity), that are supposed to stay intact, first. This could be every named snapshot + a short catalog history starting from there.
As soon as all these catalogs are traversed (possibly in multiple CatalogTraversal<>::Traverse() runs), a single CatalogTraversal<>::TraversePruned() will go through all catalogs that have been left out until then. Every data object that is found in these (previously pruned) catalogs can be destroyed, given it is not referenced by any of the preserved catalogs.

Additionally this Pull Request contains test cases to validate the functionality of TraversePruned().