(#19162) Support immediate reboots

This commit adds the ability to perform a reboot `immediately` regardless of
whether a reboot is pending or not.

To accomplish this, it changes the `when` parameter to a property, and
overrides the Puppet::Property#insync? method. In the case of refresh-based
reboots, we always want to consider the `when` property to be insync, since
we only want to perform a reboot due to an event from another resource. In the
case of immediate-based reboots, we always want to consider the `when` property
to be out-of-sync, so that we always trigger a reboot.
Maint: Update the module file

Added summary, description, updated information about the module.