adapt interface in libcvmfs.h for multi-repo support
Refactor: option parsing for multiple option sets
multiple repo support in libcvmfs.cc
expose `cvmfs_attach_repo()` in libcvmfs.a
elimiate globals in libcvmfs_int as much as possible
FIX: compile error in usage()
allow multiple (CERN) repos in test_libcvmfs
add LIBCVMFS_VERSION macro
add alien_cache config parameter
FIX: call quota::Spawn()
refactor cvmfs_fini() and cvmfs_detach_repo()
adapt test_libcvmfs.cc
move LruCache<> fields to central location
make allocator in LruCache<> non-static
amend re-engineering notes
adapt usage() text
add TraversePruned() to traverse 'all the rest'
add documentation
TEST: unit tests for TraversePruned()
Merge pull request #498 from reneme/feature-traverse_pruned

Feature traverse pruned

This is another addition for the CatalogTraversal<> template to make it usable for the garbage collection. It keeps track of all pruned catalogs that were not traversed due to history pruning. All these catalogs can be traversed using CatalogTraversal<>::TraversePruned() afterwards.
The idea is to traverse all catalogs (in revision granularity), that are supposed to stay intact, first. This could be every named snapshot + a short catalog history starting from there.
As soon as all these catalogs are traversed (possibly in multiple CatalogTraversal<>::Traverse() runs), a single CatalogTraversal<>::TraversePruned() will go through all catalogs that have been left out until then. Every data object that is found in these (previously pruned) catalogs can be destroyed, given it is not referenced by any of the preserved catalogs.

Additionally this Pull Request contains test cases to validate the functionality of TraversePruned().