(PUP-1802) Puppet agent should use ruby.exe directly

Currently when puppet runs as a service on Windows, it executes a batch script
in a cmd.exe process. This adds a layer of unnecessary complexity when we could
call our vendored ruby directly with the necessary arguments for the service to
run.

This switches over to using ruby.exe directly.
Most of the above was just moved to the new section above with minor changes.