Supports customising installer downloads

- Adds DownloadsRegistry (a set of "resolvers" for figuring out
  the download URL, given an EntityDriver)
- Adds Attributes.DOWNLOAD_URL for the default download pattern
  of a given entity (where ${version} etc will get substituted)
Customise installer downloads through brooklyn.properties
DownloadsRegistry.resolve() returns List<String>

- Instead of returning a single string, return a list of URLs to
  try in-order
CommonCommands.downloadUrlAs improvements

- Cleans up CommonCommands.downloadUrlAs to support passiong in
  multiple URLs (to try each until one works), and for use in more
  simple download scenarios
- Adds tests
Use DownloadsRegistry in entity drivers

- Ands defines default DOWNLOAD_URL on each entity
Move EntityLocal from core to api project

- Requires removing EntityLocal.setAttribute(AttributeSensorAndConfigKey)
  because AttributeSensorAndConfigKey is a class in core
- EntityLocal is still in the package brooklyn.entity.basic so it
  shouldn't impact anyone's code (but it is ugly for the api project!)
- Also moves brooklyn.entity.trait.Configurable from core to api
Downloads registry: add javadoc