WiP: initial reboot worker and uniter

This is the final PR for the reboot functionallity. It add a Reboot worker that waits for the machines reboot flag to be changed, and reacts. It also adds the tool to trigger the reboot.

 The juju-reboot command has only one option

To trigger a reboot immediately, use:

```shell
juju-reboot --now
```

This will block untill the unit agent kills the hook invoking this tool. If ```--now``` is used, the hook calling this tool will be requeued. Omitting this flag, will allow the hook to finish and only then reboot.

This branch depends on:

https://github.com/juju/juju/pull/707
https://github.com/juju/juju/pull/728
https://github.com/juju/juju/pull/744
in the event I need to know my nesting level, is there some other way I can find it, without copying over this function from state and duplicating code?