Feature: Use Shadow History to Sweep Orphaned Catalogs 

This uses the shadowed hashes in the recycle bin of the history database to sweep orphan catalog revisions. Internally, all catalog hashes from the recycle bin are added as 'pruned catalogs' to the catalog traversal object. After garbage collection finished, a new swissknife command `tag_empty_bin` does take care of the necessary history database update. This pull request finalises the basic garbage collection functionality.

Furthermore, this runs the whole garbage collection in a repository transaction both to allow for the history database update and to avoid concurrent publish operations.

There is also a new unit test checking the behaviour of the garbage collector in the presence of orphaned catalogs. Integration test 560 should not fail anymore after applying this pull request.