Rewrite: Named Snapshot History Management Class

This is a rewrite of the named history database wrapper that was called `TagList` before. Now this responsibility is fulfilled by the `History` class. It fully hides the SQLite details from the using code. Hence, all database queries and the SQLite connection is handled by `HistoryDatabase`. Note, that this Pull Request does not contain necessary API changes in the user code and hence will break the build when merged alone.

Additionally there is a unit test set for the `History` class.
Not sure if the condition is right.  FindTagByDate should show the state of the file system at timestamp.  That would mean: the newest available revision that is older or as old as timestamp.  Wouldn't that reverse the WHERE clause?  In any case, it would be good to comment this method to explain what it is supposed to return.