(PUP-2987) Patch win32-service for service hang

 - Previously there were a number of conditions in the win32-service
   gem that could create a deadlock situation by not signaling a manual
   reset event.  Without these events signaled, the call to Win32
   StartServiceCtrlDispatcher will block forever, and the service will
   never enter the STOPPED state from STOP_PENDING.
 - This issue can be particularly problematic when attempting to
   upgrade Puppet using the MSI, as the MSI attempts to stop the
   puppet service prior to installing a new version.  If it fails to
   do so, the upgrade will prompt for a retry in interactive mode, or
   will simply fail in unattended.
 - This issue had been sporadically reported / observed in x86 code,
   but appears to be more prevalent / reproducible in x64 code.

 - This code has been merged into the win32-servie gem, but not yet
   released:
   https://github.com/djberg96/win32-service/pull/21
   See included patch file for individual commit details.