WiP: Add uniter changes to support reboot

This PR adds the uniter changes 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
https://github.com/juju/juju/pull/833

I got the impression that another goroutine would be reading that value -- and could in theory already be trying to read that value by the time we set this. Similar considerations apply to the rebootPriority: it's written from one goroutine and read from another, and I'm not certain we guarantee they don't overlap.

We should make sure we exercise the reboot command in uniter_test.go, and run it with the race detector active.