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.

Good question.

I need to do more research into the CLI to see if the reweight-subtree command could be used here. What happens when a weight is set on a node that has no OSDs as leaves?

I would like to tackle this separately. I will cut a ticket by standup today for this.