(PUP-2987) Windows service hangs

In conjunction with changes made in several other PRs, this at least prevents the service code from deadlocking in a `STOP_PENDING` state.  When in this state, the service code needs to be forcefully have its process terminated before the service can become responsive.  In practice, this issue appeared to be more reproducible in Ruby 2.0.0 x64.

Note that the changes to the win32-gem are a workaround until it can be discovered where the race exists in the code, and why `Service_Main` of the win32-service gems `daemon.rb` will sometimes prematurely exit.  It was this premature exit that caused `SetTheServiceStatus.call(SERVICE_STOPPED, NO_ERROR, 0, 0)` to never be called, which never signaled the SCM that it can return from [StartServiceCtrlDispatcher](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686324\(v=vs.85\).aspx).  Effectively this blocks the call infinitely and deadlocks the process.


Related PRs:
https://github.com/djberg96/win32-service/pull/21
https://github.com/puppetlabs/puppet-win32-ruby/pull/51
https://github.com/puppetlabs/puppet-win32-ruby/pull/52