cthulhu: add factory to map crush_node API actions to rados_commands

This creates 2 new structures in tracked by cthulhu:
crush_node_by_id
parent_bucket_by_id
Take each verb in CRUD and prepare the appropriate rados_commands
HACK since changing the properties of a bucket is not well supported we
create new buckets with the properties we want and move them in place
Ticket #9526 created to track that.

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>
cthulhu: add the RPC plumbing for CRUSH_NODE

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>
rest-api: add crush_node serializer and views

Adds implementation for each CRUD verb.
Adds some error handling translation in rpc_view.
most of the validation happens in the factory. We already have to do
work in there. So it makes sense to
check things as we are building the commands.

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>
rest-api: connect the crush_node views to API endpoints

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>
tests: add tests for crush_nodes

Test that we generate the expected set of rados commands in the correct
order for each verb.
Test new crush data structures tracked by cthulhu
Add integration tests for the crush node endpoints: That things
requested can acutally be carried out
Fix rest_api url walking tests so we get included in the docs

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>