Allow puppet runs on Windows machines

This commit entails a few changes to allow Puppet runs to be triggered
correctly on Windows:
* The necessary status methods are implemented on Windows.
* The run method in the puppet agent now has a special case for Windows,
  which uses Process.create to trigger the run.
* The puppet agent explicitly specifies signal_daemon = false on
  Windows, since that doesn't work. This falls back to using
  run_in_background, which also uses Process.create.
* Windows/Unix-specific code is now included after common code in the
  Manager so that common methods can be overridden, specifically
  run_in_background and background_run_allowed? on Windows
* Background runs are always allowed on Windows, since the daemon
  doesn't interfere in any way, and background runs are all we can do