WIP - fixing some edge case issues with uninstall

Resolves #143 by bringing the :fire_engine: 

A bunch of assorted fixes:

 - run a new installer on a system which already had the application installed
 - log the Win32 message when MoveFileEx fails
 - log files are suffixed with the process number - to help trace scenarios where install AND uninstall are involved
 - uninstall step would always try and navigate to a ViewModel (only do this when Full)
 - ShouldQuit would fail when a UI is not present
 - log messages are less terrible than before

- [ ] the tests should pass

#### Test Plan

##### Reinstall the same version

 - [ ] install version A, then install version A again. 

**Expected**
 - A runs 
 - A in Programs & Features list
 - No other folders in `%LOCALAPPDATA%`

##### Reinstall and Restart

 - [ ] install version A, then install version A+1 while app A is open. Close A and restart. Click shortcut.

**Expected**
 - A remains open. 
 - A+1 in Programs List & shortcut. 
 - Folder A is around after install.
 - A+1 is opened when clicking shortcut
 - Folder A is removed after restart.

##### Multiple reinstalls in a session

 - [ ] install version A, then version A+1. Open A+1 via shortcut. Install version A+2 while A+1 is open. Close A+1 and restart.

**Expected** 
 - A, A+1 remain usable throughout installs
 - A+2 in Programs List & shortcut. 
 - Only folder A+2 is around after install.
 - A+2 is opened when clicking shortcut
 - Folder A, A+1 is removed after restart.