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.
Puppet on Windows is primarily distributed via MSI with vendored ruby 1.9.3 (x86) and 2.0.0 (x64), so I was able to use `spawn` without worrying about 1.8.7.

Puppet 4 will drop support for 1.8.7, and will actively refuse to run if you try. You could not worry about `1.8.7` or try to find an alternate approach. Someone once suggested using ruby's `at_exit` handler, instead of forking/spawning a child watcher process.