Reworks Node validations

This makes use of the mandatory option and complex types of WSME to
remove some of the custom validation code. The patch also includes a
new attribute on Nodes API object called chassis_uuid to store the UUID
of the chassis that Node belongs to, once this field is set it magically
converts the UUID to the numeric ID of the chassis and sets the chassis_id
attribute to be used internally.

Change-Id: Ie51761a3b9a018d101a6335ea7bafb09393816d4
Closes-Bug: #1252213
Partial-Bug: #1223847
Refactor /node/<uuid>/state

* Ironic now has a periodic task that checks the current power state of
the nodes[1] and keep the db updated, so the API does not need to call
rpcapi.get_node_power_state,  it can just rely on the current status in
the DB.

* The API will now return all the states in one request, whereas before
two requests were needed (one for power, and one for provision) to get
all the state information.

* Rename /node/<uuid>/state to /node/<uuid>/states (plural) since it
returns information about both states (power and provision)

[1] https://review.openstack.org/#/c/56530/

Change-Id: I9623a378f8743d4146a9b389d28d4f8b02aaf0e0
Merge "Reworks Node validations"
Merge "Refactor /node/<uuid>/state"