Per foreground uia property change events (#8742)
* UIAHandler: only register property change events per foreground window, rather than globally.
* UIAHandler: queue event registration/unregistration to the MTA thread.
* UIAHandler: change an error into a debugWarning as it will happen quite a lot.
* UIAHandler: don't diable event coalescing. this was only there for debugging purposes.
* eventHandler: check UIAHandler.handler is not None before running UIAHandler's onForegroundChange as UIAHandler may be terminated.
* UIAHandler: catch unexpected exceptions from functions queued to the MTA thread, and ensure that propertyChange events are not unregistered from the same element multiple times if a new registration fails.
* Update What's new