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.
@elyscape we typically use an unqualified command, e.g. `shutdown` and let puppet resolve the command based on its current `Puppet[:path]` setting. The windows provider was a bit special because we had to deal with file system redirection.