Windows Service Upgrade Redesign

Intent
====
This patchset redesigns how executable upgrades are handled for Windows when being run as a service.

Functionality:
-----------------
The Windows Service starts up from the default location.  If a new exe is available, a second process is started to upgrade the service.  The second process stops the service, copies the new exe into the default location, and restarts the service thus continuing proper control of the monitoring agent by the Windows Service Controller.

This replaces https://github.com/racker/virgo/pull/377 and https://github.com/racker/virgo/pull/384

Additional notes:
----------------------
The initial design had the bundle also being upgraded into the default location.  The last patch removed that functionality as it is unnecessary since the executable always uses the latest bundle directly.

It seems that the latest bundle online when pulled down does work with the latest exe do we have a method for checking minimum bundle version to use (eg. use the default/packaged bundle if the downloaded versions are less than some value)?

A few unresolved issues are noted in the discussion below.
---------------------------------------------------------------------------------