Add testCanInstallMultipleVersionsOnSameMachine
fail fast if os-details.sh is not on the classpath (eg if IDE hasn't compiled correctly with resources)
fix named case warning detection
support new-style ID's for softlayer when detection geography
move LocalhostMachineProvisioningLocationTest from groovy to java
update LocalhostMachineProvisioningLocationTest to use location specs
mutable map accepts null in builder
toString for config bag, for debugging, and convenience for setting string keys fluently
location geography resolution now looks at settings on parent nodes,
so e.g. machines in AWS or Softlayer report the coordinates of that provider's setting if set,
in preference to (and skipping) maxmind resolution;
also extend type coercions to include BigInt to int and similar, with tests, to simplify HostGeoInfo resolution code
ensure flags e.g. timeout are passed and respected, and used in a few more places where tests were taking a lon gtime
clear static data in the localhost-provisioner so that mock lat and long are picked up;
and don't set geo info for ssh machines on configure (because now the parent isn't set so this won't have all the right info!)
have jmx mode default to both jmxmp and rmi everywhere (was just at localhost), allowing standard jconsole and monitoring tools access even on remote machines, unless SECURE is specified of course
refactor AbstractGeoDnsService to use a subscription, with some tests (more coming), and extend AbstractMembershipTrackingPolicy to allow a single point of overriding
AbstractGeoDnsService now prefers HostGeoInfo defined on the entity/location (including inherited) rather than inferred from hostname/IP,
and is more aggressive about picking public IP info when available
introduce and try a LocalManagementContextForTests which does not use any catalog or local filesystem settings;
if this works well, we should port all the tests across.
catch geoscaling errors on management mastering, if settings are not configured
sequential stop always spans new context, in case invoking across entity boundaries;
and some minor fixes to prevent errors and better errors when running in weird places
Persistend/rebind: testing fields reffing entities
Fix rebind, with strongly-typed field for entity

- In rebind's two phase deserialisation, the first phase uses
  returns for entity/location instances a dynamic proxy instance
  (because first phase is to find out which entities are needed,
  and their types).
- Previously that was returning a proxy of type Entity. If that was
  assigned to a field of type ActiveMQBroker then you'd get a
  ClassCastException.
- Now we also pass in the specific type, so the dynamic proxy can
  implement it.
change RabbitIntegrationTest from groovy to java