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.
I'd order the methods so that `preStart()` comes before `preStop()`. My rule of thumb is to order them as one might think about the lifecycle (e.g. for a driver then install, customize, launch, isRunning, stop, kill).