Follow up to !5342. This adds the last missing piece for fixing how `ShellExecute` finds files, and restore the ability of running native unix programs with `ShellExecute`
--
v2: shell32: Accept ".so" as a valid program extension.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5400
First change also avoids a leak of classes (later activates) when the transform is successfully connected.
The use of MFTEnumEx is necessary so that the tests work, as they use a locally registered transform.
--
v2: mfreadwrite/tests: Test the D3D awareness of source reader transforms.
mfreadwrite/tests: Test the source reader stream change events.
mfreadwrite/reader: Make the GetTransformForStream category parameter optional.
mfreadwrite/reader: Use MFTEnumEx to enumerate stream transforms.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5412