Provide more control for inheriting CacheManagers

I have been investigating permGen leaks in a deployment I have that runs on AS7.1.3 - AS7.2.0 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.

BTW, I have not run this PR against any tests as they fail consistently on my machine (Fedora 17, oracle jdk's 7u9 && 7u15) halfway through the core module claiming some test has not shut down as many cache managers as it started (with or without this PR). If you know what I am doing wrong please let me know.