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.
What if I checked the PID before running it?

```ruby
pid = Process.pid
at_exit { system shutdown_cmd if Process.pid == pid }
```

Running that in irb indicates that it'll only run on the parent thread:
```
irb(main):001:0> pid = Process.pid
=> 10936
irb(main):002:0> at_exit { puts "exiting!" if Process.pid == pid }
=> #<Proc:0x00007f100df0ef50@(irb):2>
irb(main):003:0> fork do
irb(main):004:1*   sleep 1
irb(main):005:1> end
=> 10969
irb(main):006:0> exit
exiting!
```