WiP: Implement reboot watcher

This is just the first branch in a series that is meant to add safe reboot support via juju hooks.

The watcher will look for any reboot event hat happens for a given machine. If that machine is a container, then the watcher will look for reboot events on its own ID and the ID of all parents. For example, lets say we have a machine with ID:

1/lxc/22/kvm/0
1/lxc/21/kvm/2

A reboot event on 1, will trigger a reboot on: 1, 1/lxc/22, 1/lxc/22/kvm/0 and on 1/lxc/21/kvm/2. A reboot on 1/lxc/22, will trigger a reboot on 1/lxc/22 and 1/lxc/22/kvm/0. And finally, a reboot on 1/lxc/22/kvm/0 will only be visible to its own worker.

This is still a work in progress.
would be much clearer, I think, to break this test up into a few separate cases.

  * unrelated machines are not triggered
  * machines are triggered by parent
  * machines are triggered by grandparent

And there's probably enough commonality that it'd be worth pulling all this lot out into a separate suite with some common setup.