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
This is straight-up copy/pasted from the machine agent. Please don't do that. The machine agent has already done this work and already knows what's supported... but even if we ignore that, it looks like the code below can manage just fine even if it tries to create managers for unsupported containers. Would it make more sense to just waitfor/stop everything we can see and ignore errors?