Feature: History Tag Shadowing of Deleted Tags

This introduces a new table in the history database called `recycle_bin`. It holds root catalog hashes that are potentially not reachable anymore, due to previous garbage collection campaigns and recent tag deletions. When a tag gets deleted (or rolled over by a rollback) the hash it points to will be preserve in the recycle bin until the next garbage collection run cleans it up again. This avoids potential storage leaks.

Additionally it does some minor refactoring of the history database SQL query classe. In particular, it implements the `SqlRetrieveTag::RetrieveTag()` and `SqlRollback::BindTargetTag()` functionality as mix-in classes to equip subclasses of `SqlHistory` with these methods on demand.

Furthermore there are additional unit tests in `T_History` and adaptions in the `MockHistory` class, to cover the changes above.
True. I don't like that name either but didn't manage to come up with something more obvious. [Done](https://github.com/reneme/cvmfs/commit/7c4f33380c8fe0955e8a0e489e3ca01faa2001f9).