Adds callback function, host application can receive events

WinSparkle runs in a background process and shows update notifications when updates are available. This PR allows to set a callback in WinSparkle that is called for different events, e.g. update dialog will be shown or update process finished. In this way the host application has the chance to react when an update is available. In some circumstances it provides useful to disable/hide the UI of the application when the update dialog will appear.

This PR also changes the behaviour of the UI thread in WinSparkle. Once the update dialog gets closed the wxApp itself quits and calls the callback with the appropriate state, allowing the host application to know when the update process is over.