Provide more control for inheriting CacheManagers

I have been investigating permGen leaks in a deployment I have that runs on AS7.1.3 and found my deployments classloader is retained by some infinispan classes via an injected EmbeddedCacheManager.

https://issues.jboss.org/browse/AS7-6629

This change extracts most of the workings from DefaultCacheManager into an abstract superclass and allows inheritors better control over components generated from their implementation. For a usage example see:

https://github.com/BrentDouglas/jboss-as/commit/ccabb46ead36ac3357b1be031c5082ceda7afc5e

Which provides a delegate to the component registry to work around the above issue.