Feature: Integrate Timestamp Based Garbage Collection

This adds the possibility to do a garbage collection based on revision time stamps. The `cvmfs_server gc` command can now work in the following modes:
```bash
# delete all revisions except tagged ones and HEAD
cvmfs_server gc foo.repo.name

# delete all revisions except tagged ones + <n> previous revisions before the HEAD
cvmfs_server gc -r <n>

# delete all revisions that are older than <t>
# with <t> being a timespec readable by `date --date='<t>'`
# Like: 'yesterday', '3 days ago', 'last week', '2014/11/15', ...
cvmfs_server gc -t <t>

# a mixture of -r and -t is prohibited
```

With the timestamp based garbage collection it is potentially possible to delete the HEAD revision as well, hence this is double-checked before.

Furthermore, this changes the handling of named snapshots and its ancestors. Before <n> ancestors of each named snapshot would be preserved as well. Now only the named snapshots itself will be preserved + <n> direct ancestors of HEAD. This seems a lot more logical and also fits the behaviour of the timestamp based garbage collection.

Additionally it contains two integration tests to verify the timestamp behaviour.

**Note:** Based on [Feature: Garbage Collection](https://github.com/cvmfs/cvmfs/pull/605),  [Feature: Server Integration of the Garbage Collection](https://github.com/cvmfs/cvmfs/pull/606), [Feature: Add a MockHistory in the Unit Test Suite](https://github.com/cvmfs/cvmfs/pull/607), [Fix: Garbage Collection Code Base](https://github.com/cvmfs/cvmfs/pull/608), [Feature: CatalogTraversal can have a Timestamp Threshold](https://github.com/cvmfs/cvmfs/pull/610) and [Fix: Test 560 did not Properly Use $CVMFS_TEST_REPO](https://github.com/cvmfs/cvmfs/pull/611).