Allow better reuse of DefaultCacheManager

Some services started from a DefaultCacheManager retain a reference
to that DefaultCacheManager after it has been stopped which will
leak a reference to it's classloader.

These changes work around this by allowing subclasses of
AbstractCacheManager to provide their own GlobalComponentRegistry
and the EmbeddedCacheManager reference that will be retained by
those services allowing more flexibility while managing infinispan's
lifecycle.