reboot worker

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.

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
am I right in thinking this will do nothing if we're in ShouldShutdown mode? (because that's actually controlled by a *parent* being in ShouldReboot?)

I think there's a possible race here: if a container comes up fast enough that it sees a ShouldShutdown before its host has cleared the flag, it'll go down and never come up. Thoughts?