Fix delay in mouse tracking.

The mouse hook now requests a core pump when the mouse moves.
Re #3816.
Merge branch 't3801' into next

Incubates #3801. Fixes #3816.
Merge branch 't3701'. Fixes #3701
Merge branch 'master' into next
Fix memory leak in nvdaHelperRemote.dll: fontHeader was never being freed in GlyphTranslator::fetchGlyphTranslator
Fix memory leak in nvdaHelperRemote: a wostringStream's internal memory was not being cleaned up due to the call to FreeLibraryAndExitThread at same scope.
Merge branch 'master' into next
Fix issues with application profile triggers when creating a virtual buffer fails.

If creating a virtual buffer failed in api.setFocusObject, the global focus variables weren't set, but application triggers were already exited/entered. This meant that next time the focus changed, NVDA tried to exit triggers that had already been exited. Also, there may have been triggers entered that were never exited.
Exceptions from treeInterceptorHandler.update are now caught. Also, the call to handleAppSwitch has been moved as late as possible so other exceptions don't cause this problem. Ideally, there aren't any other possible exceptions like this, but it's best to be safe.
Re #3804.
Merge branch 't3804' into next

Incubates #3804.
cancellableSendMessageTimeout: SendMessageTimeout can block until the window responds in some cases despite the timeout, so use a background thread to send messages.
cancellableSendMessageTimeout: Place a lock around the unresponsiveThreads set, as writing to STL containers isn't thread safe and was causing crashes.
cancellableSendMessage: Pass the data pointer to the thread proc, as the global variable might be null if the message gets cancelled before the thread starts executing, causing nasty crashes.
If message cancellation was already requested by the time cancellableSendMessage starts, just return before doing anything.
cancellableSendMessageTimeout: cosmetic: Use a LockableObject instead of directly using a CRITICAL_SECTION. Also, rename/reorganise/comment for readability.
Merge branch 't3825' into next: NVDA now recovers in more cases when switching away from applications that stop responding.

Incubates #3825.
Fix an issue where two copies of NVDA sometimes started after logging on in Windows 8 or later.

This occurred because EoA seems to start NVDA on the Default desktop before Windows switches to it, but NVDA uses the name of the current input desktop for its startup mutex. Worse, NVDA didn't have privileges to open the input desktop (probably still Winlogon), so the name was empty.
Instead, NVDA now uses the name of the desktop for its thread, which is definitely more correct.
Merge branch 't308' into next

Incubates #308.
When notifying the EoA Center by sending Windows+u, use SendInput to make the injection atomic. Also, ensure there aren't unwanted modifiers.
Merge branch 't308' into next

Incubates #308.
Touch support: ensure to request a core pump after an appropriate interval to emit timeout multiTouch trackers (e.g. double tap).