HA uses shared timestamp (last modified time), and negotiates concurrent starts, and handles former master recovery

resubmit of https://github.com/brooklyncentral/brooklyn/pull/1487, adding related code review comments from https://github.com/brooklyncentral/brooklyn/pull/1464, and solving multi-master situations
Extremely minor: personal preference for the `...` to be next to the class name rather than the variable name. It is part of type of the parameter, rather than part of the name.