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.
Don't use short timeouts in non-integration tests. We've seen things timing out in cloudbees, and presume it will be the same in apace jenkins. Unless this is a performance test, then set it higher (e.g. 30 seconds).