### Common database access class for Office ####

To allow the Office code to get access to databases in general, a new Bundle called
com.openexchgange.office.tools.database has been created. It has no OSGi services and as such no explicit activator,
but is to be used directly as Java base functionality. Dependencies to this bundle need to be set on Manifest level,
of course, when used within an OSGi context.

To be free from Ox backend code, an additional bundle named com.openexchgange.office.tools.annotattion
has been created as well.

The com.openexchgange.office.tools.database project contains the base class 'DocumentsDatabase',
which acts as a general class to initiate a database connection and to provide approriate,
HikariCP based, read and write connection pools.

The initialization of a database connection is done via a ResourceAccessor, that offers access to a Liquibase
changelog.xml file, and via database read and write connection data interfaces for configuration of the DB connections.

To allow easier migration, the ConnectionData interface has been created without any dependencies to an Ox config. For the
current Ox based configuration setup, The 'DatabaseConfiguration' class implements this ConnectionData interface.
For a possible Springboot migration, a similar class, implementing the appropriate interfaces would need to be created.

The whole implementation is kept pure Java as much as possible, with only the configuration part being Ox dependant
at the moment.

ConnectionData has to be provided for the read and the write connection. So, in  order to initiate a
dabatabase connection, the Ctor for the DocumentsDatabase has to be used:

    public DocumentsDatabase(
        @NonNull final DatabaseResourceAccessor resourceAccessor,
        @NonNull final ConnectionData readConnectionData,
        @Nullable final ConnectionData writeConnectionData) throws DatabaseException

The created instance then provides the two database access methods, which return simple java.sql.Connection interfaces,
which can be used to perform database transactions.

    public Connection getReadConnection() throws DatabaseException
    public Connection getWriteConnection() throws DatabaseException
