Add maintenance_reason when setting maintenance mode

Sets the reason for maintenance when the power status loop
automatically puts a node into maintenance mode.

Implements: blueprint maintenance-reason

Change-Id: If6c54d0eeb8b874fc9c59ef4f57fa812d78531b0
Add API endpoint to set/unset the node maintenance mode

This patch is adding an API endpoint to user set/unset the maintenance
mode of a node, since now we have an extra db field where operators can
specify the reason why the node was put in maintenance mode we should
make sure we clean this field as well once the node is removed from
maintenance mode, operations that requires extra actions as a consequence
of updating a attribute from a resource should have a separated endpoint
for it. Right now the endpoint is only updating the DB, but in the future
setting a node to maintenance mode should do more things like signalizing
Nova that the node is now in maintenance mode so that instances do not
gets scheduled onto it.

Implements: blueprint maintenance-reason
Change-Id: I1d4f609d248535064b9e3daeb67481d5b921aa7c
Merge "Add API endpoint to set/unset the node maintenance mode"
Merge "Add maintenance_reason when setting maintenance mode"