WIP [NX-525] shared database support

https://issues.sonatype.org/browse/NX-525
ATM pool(String) and instance(String) are factory methods, but that could change in the future, if we add management of named instances in the impl.  My feeling is that is what we'll probably end up doing, but unsure yet, and for that reason I'm deferring method name and/or javadoc changes... for a bit longer.