0.8 - Elevate the installer only when absolutely necessary

So we have a headache which we need to investigate with how WiX and elevation works:

 - as soon as a component is set as `PerMachine="False"`, the installer is elevated
 - if you specify `PerMachine="True"` and do not run the installer as an elevated user, Bad Things Happen
 - without the .NET Framework installed, the managed bootstrapper will not work

This PR adds a per-user DummyInstaller to the chain to prevent the elevation of the installer.

This impacted some assumptions we made about the bootstrapper process, as we should run our custom actions after the last `DetectPackageCompleteObs` item...

Tasks:

 - [x] get elevation working only when the .NET Framework is not installed on the current machine
 - [ ] test that the installer elevates on a machine without the .NET Framework, and finishes successfully
 - [x] test that the installer does not elevate on a machine with the .NET Framework available, and finishes successfully
 - [x] fix impacted tests
 - [x] drop the .wixproj from the sln (it can be updated manually rather than as part of the build)
 - [ ] test updated installer will correctly tidy up after updating
 - [ ] investigate and resolve issues raised in testing, so the experience is really magical and stuff

Resolves #162