Rewrote Subregion parsing

This fixes the problem of subregions not initialized until the bean is referenced. AbstractRegionParser now, when it encounters a *-region child element, does a depth-first search for all nested regions and manages the hierarchy internally. Then for each subregion, calls parseCustomElement with no containingBeanDefinition. i.e., Spring sees it as a top level singleton bean.