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.
the absence of a doc is only the initial state. It is not meant as a determining factor for whether you need to reboot or not (in itself). For example, when first setting the flag, you may set it to False, and that would still mean that you did not have to reboot. After the first lazy create, this document would exist from here on out and perform its function to let the machine agent what its supposed to do. Let me know if you think this is unnaceptable, and I will change it.