Implement API for provisioning

Expose do_node_deploy and do_node_tear_down in the API for /nodes/states.

Client have to do a PUT at /nodes/<uuid>/states/provision and in the body
request indicate the desired provision state for that node. This is an
async call and will return 202 (Accepted) in case the request was accepted
and is in progress. It will also return 409 (Conflict) in case there's
a state change already in progress or 400 if the supplied desired state
is not valid or if the node is already in the requested state. No body
message is returned, client should continue to GET the status of the node
to observe the status of the request, in the future an URL to the /states
subresource of the node should be added to the Location header indicating
that, right now setting the Location header is not supported by WSME.

Change-Id: Iff315ccae9101b9736e3b9cc557cac01c26ac257