(#19162) Manage pending reboots

These commits update the reboot type and provider based on user feedback.

The reboot type supports refresh-based reboots -- reboot in response to a refresh event from another resource, e.g. package.

It also supports pending-based reboots -- reboot it the system if a reboot is pending, e.g. pending file rename operations.

See https://github.com/joshcooper/armatures/blob/reboot/arm-14.reboot/index.md for more details.