Feature: Automatic Garbage Collection on Publish

This allows for the automatic garbage collection after a publishing operation. To allow this, one needs to do two things:

1. The repository needs to be created with garbage collection enabled
2. The variable `CVMFS_GC_TIMESTAMP_THRESHOLD` needs to be properly configured

In detail `CVMFS_GC_TIMESTAMP_THRESHOLD` needs to contain a string that is parseable by `date --date=$CVMFS_GC_TIMESTAMP_THRESHOLD`. Furthermore this contains both a unit test and an integration test checking the proper functionality of this feature and the minor refactorings it needed.