Add Command line compatible JDBCDataSource class

Provides standardised way to allow "offline" database interactions such
as migrations, maintenance and other commands as set by an implemntation
of CLIJDBCDataSource.

Also some javadocing and added method to get DataSource's and Database's
schema versions.