Configuration and Mapping refactoring (kinda)

This PR is primarily a fix for the missing mapping information when resetting or populating an ElasticSearch index, but contains other changes to the DIC Configuration and initialisation of the bundle.

The mapping configuration is vastly simpler, we no longer validate the properties configuration key for a type, it is just a variable node. We now rely on errors back from Elastisearch for invalid mapping. It might not be 100% ideal to handle mapping errors this way, but the new ConfigManager and ConfigSource classes are flexible enough that we could always implement a validation layer if necessary.

Additionally, the ConfigSource set up allows us to implement Annotation support for mapping information really easily (anyone want to give it a go?)

The only thing that regressed from this PR is the lack of type_prototype support, I dont have any examples of a configuration that uses this feature to make sure it doesnt change - so if I've broken your config and you're using a type_prototype send a config example through.