Installer changes:
*Make sure to always pop the new window from the stack when creating a dialog and controls with nsDialogs to avoid stack corruption.
*Rather than getting both the uninstallString and uninstallDirectory from the registry for the previous install, just get the uninstallString and calculate its directory using ${GetParent}. The UninstallDirectory registry item is only added by the uninstall log so may not exist in really old versions of NVDA.
*Again copy the previous uninstaller to a temp location before executing it, as if executed in its own directory, it can't delete itself and then marks its file path for deletion on next reboot and therefore when the user reboots the new uninstaller gets deleted.
This should fix the issue where some people are reporting that NVDA installer does not detect a previous installation.