Add a Power framework for Nodes.

Now that the hardware workload can detect and configure IPMI
controllers, we need a little framework to use them.

* Add a Power class that anything that can control power states on a
  node should subclass and use. This class (and not its subclasses!) is
  the only one that the framework interacts with.
* Add a Power::SSH class to the core, it will be in charge of handling
  OS level reboots.
* Add a power method to the Node object, and arrange for it to use the
  Power class.
* Remove the dedicated reboot method from the Node class.
* Add API and CLI support for the Power methods.