add include guards in catalog_traversal.h
REFACTOR: CatalogTraversal<> uses Observable<> (replace homebrew callbacks)
introduce SimpleCatalogTraversal (default template values)
adapt `cvmfs_swissknife lsrepo` to new API
adapt `cvmfs_swissknife migrate` to new API
Merge pull request #399 from reneme/refactor-catalog_traversal

Refactor: Catalog Traversal now uses Observable<>



This was a TODO in the code. Up to now CatalogTraversal<> used a homebrew callback implementation. Now it uses the more flexible API of the Observable<> template.
This mainly simplifies the interface for user code of CatalogTraversal<> and improves code reuse.

TODO: Currently cvmfs_swissknife check does not use CatalogTraversal<> but its own recursion implementation, this should be changed at some point.
add optional introspection to PolymorphicConstruction
PolymorphicConstruction documentation update