Wip 8665

@dmick @jcsp 
I am pretty happy with this.
There are still a few TODOs in the code and I've reached the point where I need some fresh eyes and sleep.
Created a new pull request to catch your attention.
I need to fix the minion-sim test variant for crush maps. It works fine against a real cluster.

These prepends to `commands` make the flow hard to follow.  Suggest reordering these lines of code so that it forms a series of appends to commands.