Re-instate KNIFE_SETUP_COMMANDS support

An earlier commit inadvertantly removed the code that handled the KNIFE_SETUP_COMMANDS configuration key. This commit adds support again.
Support a Windows service as a life sign for Chef

An entity using the Chef lifecycle can now pass the name of a Windows service, and Chef will test that the named service is running.
Merge pull request #921 from richardcloudsoft/chef-followup-work

Chef followup work
Fix use of String.format in BashCommands

Should not really be used with no arguments, and should *definitely* never be used when the format string may contain '%'
characters, which is always a possibility with URLs. This was causing `JBoss6SshDriver.install` to fail, since there are
URL-escaped characters in the download URL, when it eventually called `BashCommands.alternatives` which ended up doing a
superfluous `format` on the list of commands with no arguments.
Merge pull request #922 from grkvlt/fix/bash-commands

Merging, tests pass on Jenkins server
clear up naming of RMI_REGISTRY, and fix bugs in JmxRmiAgent where it was binding to wrong registry port, plus javadoc for JmxRmiAgent
improve shared JMX support done by JavaSoftwareProcessSshDriver, leaning on new JmxSupport:
uses an agent by default so works with public IP addresses

ActiveMQ entity updated with new tests (also ActiveMQ now supports multiple instances);
not all other entities updated yet, however
fixes to JMX tests, including updating many of the JMX-based entities and integration tests to work with the new mechanism;
note Karaf reverses the jmx/rmi settings to be clearer (also it fixes the tests so that it cleanly shuts down, and checks for that);
to permit clean shutdown when jmxagent is set and a java-based tool is used to do the shutdown, we need a environmentVariablesReset() on the ScriptHelper;
this also gives us a way to make sure e.g. JBoss _install_ is not blocked on database coming up
(previously it would block trying to resolve a DB url set in java system properties, at the first shell used, now that is deferred until launch)
more fixes for specific JMX entities, tidying up installation of agent and disconnecting feeds
check if hostname is longer than 64 chars and attempt to repair the hostname on localhost (mapping to 127.0.0.1) if so
make java installation retry once on errors (due to ubuntu sometimes not fully ready on boot in AWS... blech)
tweak logging and error handling, deprecation, and bump up  timeouts in test in response to intermittent jenkins test failure
always publish SUBNET_HOSTNAME if it is available (and different to HOSTNAME), with convenience in Machines to find the best hostname
update cassandra to use subnet hostnames when available, so tests pass in HP cloud
tidy up how java.util.logging is intercepted, and ensure test/resources dirs get added to eclipse build path without exclusion
better logging for JMX problems, and making Cassandra tests a bit more resilient / informative on errors
more cassandra reliability improvements; waits for thrift port to be open before advertising upness,
and delays after launching first node before launching subsequent, using seed group of 1, because that
avoids SchemaDisagreementErrors.  will now try some other strategies to clean up.
fix occasional schema disagreement on cassandra start (or workaround using a single seed node); and misc related tidies