Small COM fixes

ComUtils was unable to enumerate classes without admin rights because it tried to open the registry keys with ALL_ACCESS instead of READ_ACCESS.

COMBindingBaseObject was using CoInitialize instead of CoInitializeEx, however MSDN recommends "New applications should call CoInitializeEx instead of CoInitialize. If you want to use the Windows Runtime, you must call Windows::Foundation::Initialize instead."

COMBindingBaseObject was also interpreting S_FALSE as "CoInitialize failed" instead of "CoInitialize has already been called" and failing randomly.