Orchestrated rollout example.

@anthonybishopric @syamp demo of rollout process we were talking about yesterday. I chose an arbitrary "ensure min nodes" strategy for the orchestrator, but you could easily sub in another one (i.e. "rollout 4 nodes at a time and pay attention to metrics").

It's nice because even though it appears the coordinator is running a "synchronous" rollout, it is responsive to changes in cluster topology. If a down node came up a day later it would correctly be migrated to the current version. If half the cluster crashes, it slows down the rollout and/or halts it if there aren't enough healthy nodes to progress.
There can be a race condition here right? If the number of healthy_nodes drops before you enter the next block due to the same down decision being made on other nodes, conceivably all of the cluster could go down at once. Unless there's a lock / semaphore I'm not seeing in here somewhere.