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