WiP: Add machine reboot support

This PR adds changes in the machine agent needed to support reboot.

Depends on:

https://github.com/juju/juju/pull/707
https://github.com/juju/juju/pull/728
https://github.com/juju/juju/pull/744
https://github.com/juju/juju/pull/782
I'm still worried that ErrRebootMachine has two separate meanings -- one here for special handling by the machine agent, and then from the uniter for special handling by the unit agent, that doesn't match