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)
include blocking details when waiting for service up to invoke an effector on a child
effector invocations had been somewhat inconsistent in what failed -- the method call, the surrounding context -- this ensures that a programmatic call to invoke an effector will throw if it fails, that the effector task is added to any parent context, but as an inessential task so it does not fail the parent context.  new tests for this are in BasicEffectorTest.  the effect is particularly magnified when we attempt to add programmatically driven effector calls to the dynamic task context (so they show up in the gui).  these are now marked inessential, which i think is right because the user is interacting programmatically, and as the caller they would typically get on the result and handle errors themselves.

this largely preserves existing behaviour, apart from with the exception that effector method calls inside other effectors could previously fail without throwing, and now they throw.

this mainly affected dynamic cluster which in some places relied on failures being silently ignored, e.g. in the resize effector call.  this effector now reliably fails if the cluster does not resize.  previously it would depend whether it was in a task or not.  to preserve compatibility in that class as much as possible, some interface methods (non-effector) have had their signature changed.  it was not clear why these were on the interface, so i have deprecated them there also.
map target name to right format on cluster-level undeploy
fix link error
don't block rebind just because a group can't rescan his elements; it may be referencing an entity which has gone away
fix memory leak where peeked-locations are kept by their parents
provide some detail and better tostrings when tasks are backing up
give better error when ssh key with passphrase is used
collect tomcat stats less often as it appears to be expensive
include job information in the toString for tasks that don't have a display name, and don't set the display name to tasks, and give jobs useful toStrings in many places
optimize queue size computation and minor other optimizations
fix ibm jdk TLS bug