Database & Testing update

### In this PR are some structural changes to tests:
 - No database URLs or credentials are stored in the project (source code, config or otherwise)
 - All Database info & creds are retrieved via `CrsProperties`
 - All tests which interact with the database extend `AbstractTestWithDatabaseConnectivity`
 - `AbstractTestWithDatabaseConnectivity` does a refresh of the target database before each test run

### Necessary changes:
 - Add properties which contain DB URL, user & password to filesystem properties file (usually found at /apps/apps-config/conf-registration-api-properties.xml).  See below for example.

### Possible gotchas:
 - Do not EVER put production creds as the unittest properties like this, as a test run could wipe out the production database.  There is no reason to do so.  Production creds should reside only in the application properties.  Actually you could try, but I'll likely make it that the prod DB would ignore connections things other than app servers.

Example properties:
```xml
    <!-- unittest database server connection info -->
    <entry key="unittestDatabaseUrl">jdbc:postgresql://localhost/eventhub_unittest</entry>
    <entry key="unittestDatabaseUsername">[username]</entry>
    <entry key="unittestDatabasePassword">[password]</entry>
```
They are not used together.  They are separate processes that happen to be defined next to each other.

`UnittestDatabaseBuilder` resets the unittest database to a known state prior to each run of the unittest suite.

`DatabaseMigration` will apply updates to the target database (local, stage or production) during the deploy phase.  This would be used when we need to add a new table, or add a column to the table.  It's used instead of running manual SQL statements.