Rewrite: Swissknife History Integration

This replaces the old history management in `cvmfs_swissknife` that was handled by `CommandTag` and `CommandRollback` by a couple of new commands, namely: `CommandCreateTag`, `CommandRemoveTag`, `CommandListTag`, `CommandInfoTag` and `CommandRollbackTag`. All of those are sub-classes of a new `CommandTag` that provided some common functionality. For example loading of manifest, catalogs and history databases as well as upload and publishing functionality.

Note: Adaptions for the integration test `520 - history` will come with the next pull request.

Note: This contains [Rewrite: Named Snapshot History Management Class](https://github.com/cvmfs/cvmfs/pull/591)
This can never happen since the hash comes from the manifest.  Or, more precisely, if it happens, the manifest is broken.  But I'm not sure this is the right place to check it.  Perhaps this should rather be an assert?