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

For ease of testing, the actual reboot is commented out.
This reboot code is the absolute last thing to happen before exit, so that's not necessary. I don't actually know what the use cases are, but since it's in the Windows cookbook, I'm replicating it here. @adamedx brought up the case of someone forking an installer during the Chef run and wanting to give it time to finish before the automatic reboot.