Several fixes to in-process COM proxy registration:
* ia2support.cpp: don't refuse to initialize if the installedIA2Map is not empty. It should be empty anyway, but the check itself made logic harder to reason and may have idden other issues.
* ia2support.cpp: on termination, make sure to clear the ia2Install map after unregistering the proxies, otherwise re-initializing the same copyy of NVDA will not re-register the proxies.
* comProxyRegistration.cpp: Cache the generated proxy CLSID which is used when registering the proxy's class object, so that the proxy CLSID is the same value across all threads, and therefore calling CoRegisterPSClsid to point an interface to the proxy can be done from multiple threads even though it is process-wide.
* When restoring the interface proxy registrations on termination, don't force interfaces with no backup over to the standard marshaller. It is safer to just leave it dangling - an invalid CLSID is better than the wrong one.
* ia2support.cpp: when terminating, restore all the interface pointers on one bulk action, rather than when unregistering on each thread, otherwise interface pointers would be restored multiple times.