MongoDB client update and database configuration fixes

*NOTE:* This PR makes a first pass over the configuration classes and tries to separate database and Core configuration somewhat. As such, some configuration parameters have **changed**. Notably, `core.pipeline` is now `database.pipeline`. Additionally, default values **may have changed** due to defaults declared in several places being replaced with a single declaration.
Please make sure to keep track of your resource.properties current values when testing this. Default values may differ from your own, which could cause problems.

This fixes #256 by introducing the `MongoClientURI` format for specifying the MongoDB connection: `mongodb://host1:port1,host2:port2`.
Hydra can be connected to a standalone MongoDB by simply using a single host. To connect to a replica set, specify several hosts.

All information that is required by a database implementation is now in `DatabaseConfiguration` , and in `MongoConfiguration`. All default values are bound to the specific implementation instead of being in Core - so the values make sense for the implementation. I've replaced any home-grown configurations with `MongoConfiguration`. That class should also be usable by any systems using the database packages for communicating with Hydra.

I think there is much more that can be done here, so suggestions are very welcome.