Add a Reboot resource into core. (RFC code.)

For ease of testing, the actual reboot is commented out.
I think one cancel should cancel all the reboot requests before it. Again IMO if there comes a new reboot action after the cancel system should still reboot.