Add a new interface for a custom UI implementation in the updater.exe module.
This will eventually allow for the user to override the user interface that is presented by the updater.exe application during a cold update.
Pass the custom UI type to the updater.exe and try to instantiate it
Run UI dialogs in a proper UI thread so that they can remain responsive when waiting for the pipe to connect for example
Report progress to the custom UI
Merge branch 'feature/custom-ui' into wct-net45