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.

It is but not easy to see currently.
It can be found in two places: crush_map and sync_object/osd_map
Neither serves as an easy to use resource.

When we were planning this work we decided to only support the predefined types and the blueprint didn't call for creation of such a resource.

Now it seems that having it would be helpful and useful. Separate feature for sure.
Is it readonly? do we reorganize the crush endpoints to be collected under one level
crush_map -> crush/map
crush_node -> crush/node
crush_rule -> crush/rule
crush_type -> crush_type

I will cut a ticket for this feature today before standup