-h is halt, -r is reboot.
reboot_pending? no longer has unsupported platforms, so remove the test for it.
Remove the timestamp attribute, which isn't actually settable by the user.
In specs, and possibly elsewhere, Chef::DSL::RebootPending can get mixed in without a #node available. Decline to crash in those situations.
For deciding whether or not to actually reboot, use *only* our internal implementation, ignoring any system indicators. In other words, only reboot when someone has requested it from the reboot resource.
Switch from class variables to class instance variables; tweak temporary logging a bit.