Merge pull request #547 from aledsage/fix/EntityType-name-notIncludeImpls-2

Fix/entity type name not include impls (2)
Adds EntityDriver.getEntity()
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
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
DownloadRegistry returns DownloadTargets

- Instead of just a list of strings, the DownloadTargets
  explicitly gives the "primary" and "fallback" URLs.
  This makes resolvers more composable.
Default DownloadRegistry to include local-repo
big DownloadsRegistry changes for returning DownloadResolver

- Returns DownloadResolver, instead of just List<String>
- Adds downloads.cloudsoftcorp.com repo to default downloads list
Move downloads code to brooklyn.entity.driver.downloads

- was previously in brooklyn.entity.driver package
Use DownloadsRegistry in entity drivers

- And defines default DOWNLOAD_URL and DOWNLOAD_ADDON_URLS on each entity