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.

There may have been some ambiguity over what you refer to as "predefined types" -- I had thought of this as "the types that exist on the cluster", rather than "the types that ship with ceph".  Even if we don't support type creation yet, we should provide a read only resource for the types that exist so far.