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
if we hold the lock more then we need to, we run the risk of getting killed before we release the lock. This will cause a deadlock after reboot, or unit/machine agent restart, where, there is a hook lock on disk that belongs to nobody. This was added after hitting that particular issue.