### Changelog: - Extracted, generalized and improved code from directory factory - better detection overall. - | Added info getter for is64bit. - | Added info getter for finding uninstallers in install location. - | Added info getter for finding application executables, speeds up certificate scanning. - | Added info getter for extracting info from application executables. - Added path cleanup to DisplayIcon. - Added wait cursor after exiting startup manager. - Improved and optimized logic for getting icons. - Improved application searching speed slightly. - Changed QuietUninstallStringCopier Priority to RunFirst because it's the fastest and has best results. - Moved creation of UninstallerLocation to a separate info adder and fixed it sometimes failing. - Code refactoring around info getters and factories. - Fixed IO crashes in GetDirectoriesToScan with invalid directories. - Fixed Path.IsPathRooted crash with some UninstallerFullFilenames. - Fixed crash during junk search when junk names have invalid path characters. - Fixed some disposed exceptions. - Fixed bugs in path cleanup of InstallLocation, InstallSource and ModifyPath. Some valid paths were removed or modified. - Fixed certificate highlighting sometimes not updating. - Fixed info adders not updating some properties. - Fixed some info URLs not being cleaned up properly. - Fixed Msi INSTALLPROPERTY_LOCALPACKAGE not being assigned to UninstallerFullFilename.