KRACOEUS-8443: avoiding the creation of datasources & pools per spring c...

...ontext.

This PR does several things:

1) it ensures that the datasources, transaction managers, and connection pools are only created once for the entire application and imported into other spring contexts.
2) Using the standard Spring Transaction Interceptor and standard transaction configuration.
Rice is a little convoluted where you need certain spring beans to exist (datasource, transaction manager, etc) for configurers.  Those spring beans are stored in the Config object and aren't directly available in the "module" Spring contexts.  Before we were making them available by having spring create duplicate instances.  Now we create them once and grab them out of the Config object.  In order to do this I created a Factory bean which accesses ```ConfigContext.getCurrentContextConfig().getObject(this.getObjectName());```