Brooklyn node and cluster upgrade

Merges #266 (cluster upgrade) with work I've been doing on node upgrade.

Builds on #260 so please ensure that is merged first.

Needs further testing (by me at this point) but wanted to push it in case @neykov you have comments, especially on the last commit.
Just occurred to me that we could get a failover event during an upgrade which would mess the assumptions below. We could boost the HA priority of the existing nodes during the upgrade but this doesn't solve the case when we are upgrading a single node.