Add Linux support

This provider uses Kernel::at_exit instead of a separate watcher
process. This technique should be portable to the Windows provider as
well. Note that rebooting will silently fail if the user Puppet is
running as lacks permission to run the shutdown command.
Refactor prompting into a feature

Windows is the only system that supports reboot prompting, so it makes
sense to make this a feature rather than a requirement of the type.
Add Linux acceptance tests and nodesets