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
Jclouds byon: support privateKeyFile config
JavaSoftwareProcessSshDriver: installing java
fix vanilla-java integration tests, and clarify the API and fix paths used in ArchiveBuilder which caused the problems (jars can't use "./" prefix, and these jars had "./test-classes/" !);
also clean up warnings and javadoc
increase JMX poll frequency slightly (to 3s rather than 500ms) as it's a bit expensive
add some more tests for enricher rebind (but none of these are the culprit for the multiple-enrichers-being-added)
add failing test for enrichers being added multiple times on rebind
explicitly fix two of the instances where enrichers and policies were being added again on rebind
fix more of the explicit places where enrichers could be re-added on rebind