Add Linux support

This adds a basic Linux provider, as requested in [MODULES-1560](https://tickets.puppetlabs.com/browse/MODULES-1560).  It does not presently update the spec tests to handle that.  Suggestions on which tests to look at fixing are welcome.
Process::spawn() retains the same user context, yeah.  As for initiating shutdown from non-root, that depends on if the user has been given permissions to do so.  On Linux, that appears to be determined by which users are in /etc/shutdown.allow, if it exists.  On BSD systems and others, I'm not sure how that access is provided.  So if Puppet were run as non-root, I imagine that this would fail, as currently written.  I'll modify it to use ```sudo```.