Remove duplication from InternalEntityFactory etc
Deprecate EntitySpec.id and LocationSpec.id

- Just let the management context decide what the id should be.
- Rebind goes through a different path.
Internal*Factory: remove duplication

- Remove duplication across InternalEntityFactory, InternalPolicyFactory
  and InternalLocationFactory
- Remove duplication in callers of InternalEntityFactory.createEntity
Remove duplication in rebind code
Change EntityAdjunct.getName() to getDisplayName()
Creating BrooklynObject super-type

- a super type for Entity, Location, Policy and Enricher
Remove (some) use of groovy in src/main
writeToTempFile should follow the semantics of newTempFile

Os.*TempFile methods would be expected to behave in a similar manner.
Use newTempFile which will normalize prefix/suffix arguments.
AggregateClassLoader shouldn't relay requests to the parent.

A normal class loading first goes through the parent class loaders and
if that fails then findClass will be called. In the aggregate case we have
already explicitly listed all classloaders we want to try. Don't try to load
classes from parent.
Resolve classloading issues related to OSGi.

The changes should make it impossible to have the same
class loaded from different classloaders resulting in linker
errors. For example a catalog item could load a class from
one of its linked bundles, while the same class would be available
on the app classpath where it was already loaded.

The solution is to make sure that a bundle is loaded exactly once.
While this is normally the case we were having issues with bundles
included in the boot classpath. We were exporting their packages
but the framework didn't know which bundle name:version they
belonged to, thus making it possible to load the same bundle from
external source.

Instead of including the exported packages of bundles on the
classpath to the system.packages.extra config, now for each bundle
on the classpath an extension bundle will be created and installed.
Use all classloaders from the type's hierarchy when creating a proxy.

The proxy will need access to all extended classes and interfaces but they
might come from a different classloader than the entity's one.
It might be the case that entity's classloader doesn't know about all of the
extended types if there is an intermediate classloader in between.
Fixes logic for potential seed count / quorumSize
deploy / undeploy / update on the ControlledDynamicWebAppCluster
tidy initial pull request from @bmwshop, as per code review, plus some todo comments
move deploy and redeploy bodies to DynamicWebAppCluster, with ControlledDWAC calling to that,
and with new interfaces for the shared items (deploy effectors etc) so that ControlledDWAC is not a JavaWebAppSoftwareProcess
better tasks logic for deploying wars when target entity is ready (ie service up), failing gracefully if it's not, with some helpers in Tasks and DynamicTasks
squash code warnings, clarify user-facing messages, fix redeployAll bug
have at-entity tasks show up as children (in dynamic queueing context, though still submitted externally which means they will not be run as part of queue), and allow them to have children: improves traceability in GUI when effector methods call other effector methods, they show up as children rather than background tasks (or worse, not even as background tasks); and support setting flags in TaskBuilder
parallel task should not fail if inessential child fails
improve display of task results, catch NPE when switching task contexts, and ensure data is cleared (nulled) for old map entries due to backbone bug (without this, sometimes blockingTask might show up as `TYPEOF undefined` when you inspect its JSON)