Refactor config methods

Creates a BrooklynObject.config(), and deprecates the crazy number of inconsistent config accessor/setter methods we have on Entity/Location/Policy/Enricher.

Note that `AbstractEntity`, `AbstractLocation` and `AbstractEntityAdjuct` all still have their own implementation of config. Until we delete the additional deprecated access/setter methods, it will be difficult to rationalise this down into a single implementation within `AbstractBrooklynObject`. I suggest we do that as soon as we begin work on 0.8.0-SNAPSHOT.

Please merge https://github.com/apache/incubator-brooklyn/pull/319 first (for the groovy version upgrade to 2.3.4). Without that, it fails to compile with `BrooklynObject.config()` returning `ConfigurationSupport` and `BrooklynObjectInternal.config()` returning the sub-class `ConfigurationSupportInternal`.

When reviewing, please focus on the two commits `Add BrooklynObject.config()` and `Deprecate *Config methods in Location/Enricher/Policy`. The other commits contain a massive number of boring changes to make things use the new `config().set(key, val)` rather than the old `setConfig(key, val)` etc.
Should we support setting an `Object` value instead and doing type coercion if possible?