Initial interfaces & untested bare JSON implementation of the next config interfaces.

The intention is to support multiple config formats.

The current impl is mostly to toy with, but it will likely be similar to the final version unless I find a better way of doing e.g. the registry.
Fixes to temp support YamlConfiguration. Also deprecate getConfiguration inside Engine.
Add basic tests for Configuration
Missing license headers :-)
Implement YAMLConfiguration for Bukkit and some bug fixes. No defaults just yet so not used anywhere.
SimpleResourceDownloader: Don't depend on Engine.
YAMLConfiguration is part of the backend, so might as well just register it there and lazily ensure the resource is installed.
Config: Basic defaults implementation w/ tests.
contains -> containsPath
replace languagesConfig with the new config loader, even though it's going to be replaced or removed eventually anyway.

If it's replaced, it'll be replaced with JSON as there's no reason languages.yml needs to be yml (it's always only stored inside the jar.)

This just leaves the more annoying to replace general config (config.yml).
Convert languages.yml to json.
Add Configuration/viewFor(prefix) & related tests. It creates a view on a sub-map in the configuration.

set() and get() calls are consistent with the parent configuration & all views.
Defaults set on a view (setDefault()) are _unique_ to that view.
Move config views to their own class (ConfigurationView)
config views were not setting properly. Add related tests for setting.
Fix AbstractDefaultConfiguration/bindDefaults()
ConfigUpdater: Temporary fix for retrieving depth2 keys when there's a root key that isn't a map.
JSON/YAML config loaders: create the loaded file if it doesn't exist already and fix saving JSON.
JSONConfiguration: Add JSONPrettyWriter util class to prettyprint JSON and move json-simple to backend.
Add EngineConfiguration class to simplify access to the main configuration. Not used yet but can be injected.
Backend implements YAML so bind it in the backend not Bukkit.