Feature: Multi Repository Support for libcvmfs

This does adaptions to libcvmfs to quickly (and reliably) switch between different cvmfs repositories. Some more details can be found in the corresponding [Pull Request](https://github.com/cooperative-computing-lab/cctools/pull/488) in the cctools project.

To make it work some interface changes to libcvmfs were inevitable. Essentially as much of the global state in libcvmfs as possible was eliminated by separating global from repository specific functionality. Hence, all ‘mounted’ repositories share one cache directory that is configured before initialising any repository making the configuration two-staged.

Users are now supposed to call `cvmfs_init()` with global options related to the caching and logging behaviour of libcvmfs. Afterwards one needs to call `cvmfs_attach_repo()` with the remaining repository specific configuration. This function will return a `cvmfs_context*` that needs to be passed along all the other libcvmfs function calls.