REVIEW [NX-525] shared database support

https://issues.sonatype.org/browse/NX-525

also addresses:
https://issues.sonatype.org/browse/NEXUS-6698
https://issues.sonatype.org/browse/NEXUS-6619
https://issues.sonatype.org/browse/NX-601
Playing with this a bit today and I'm not sure, based on what I've read here: http://stackoverflow.com/questions/20473606/guice-provider-as-singleton  ...that simply annotating the provider with @Singleton is enough. I wrote a test here: https://gist.github.com/cwilper/4f9f7640e0b5f9406ce9 ...seems to indicate that manually binding to the singleton scope is required to get the provider caching behavior.