Refactor: prepare for live migration amend
auto migration of history database
add new SQL classes
register new SQL statements in SqliteHistory
keep hashes for tag deletion
allow for listing of recycle bin
allow for emptying of recycle bin
TEST: adapt the MockHistory class
TEST: add unit tests for recycle bin functionality
add documentation to SqlRecycleBinRollback
TEST: empty already empty recycle bin
amend documentation of mixins
add ascii art to Mixin description
Merge pull request #614 from reneme/feature-history_tag_shadowing

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.