tidy think-we-are-master-when-we-are-not discrepancies

fix test which depended on promotion when master-becomes-master-again, and
when considering demotion look at whether we were master *locally* not globally,
on reassertion, rewrite the master file and the change.log;
and throw if we fail going in to hot backup
force catalog to load on access of getCatalogItems()

some callers use that to force catalog load, so support that behaviour. in time maybe we can throw this away or simplify it hugely.
log number of threads as part of GC info
make BrooklynClassLoadingContext instances serializable

clean up how we set and manage those; fix bug where serialized state of `/Users/alex/Data/cloudsoft/dev/gits/brooklyn/docs/use/guide/defining-applications/example_yaml/appserver-clustered-w-db.yaml` was 8 MB !  also rename methods and internal fields to make things more standardized, and dampen down some logging
fix hot proxying seeing old entities (below the app level)

fix bug where newer real entities preRegistered were not being picked up, in favour of older instances, so new data was not being seen at children at hot_proxies
misc tomcat blueprint fix
clean up logic for HA start+change mode
allow explicit setting master

this is in fact needed, as otherwise if a previous master has failed we have no way to force a new master sooner than the heartbeat timeout
more HA change mode fixes
fix deprecation
Update the Add Application wizard to send CAMP Yaml to server.

Previously a deprecated ApplicationSpec format was used which assumes the catalog items have java types which the YAML catalog items do not have.
This closes #341
This closes #350