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.
Longer term (not for this PR)...
Feels like it should be unnecessary to create a `ConfigBag` just to set config on the `newMemberSpec`. Particularly because we then unpack the ConfigBag again to call the actual `.configure()` method. Perhaps we should have more `.configure()` method variants, including `.configureIfNotNull(...)`?