 
            This fixes Assassin's Creed Shadow which now crashes on initial config screen. It will try to suggest screen reading in that screen and when it goes as far as successfully creating synthesis stream (with the present speech synthesis stubs) it won't tolerate any failure on the way forward (would it be missing interface or an error return from functions it calls from it) and will crash either trying to dereference missing interface from QueryInterface or from exception fired on method's error return.
The tests added on the way cover everything the game calls.
As the test suggests, the IAsyncOperationWithProgress_IBuffer_UINT32 async returned from synthesis_stream_input_ReadAsync() is not really async: the success result is available immediately after getting the async interface without waiting for it. I think it makes sense because the method(s) to get the synthesis stream for the given text string are already async (also in the present stubs) and IAsyncOperationWithProgress_IBuffer_UINT32 async should only return already prepared buffer data. So I suppose it doesn't worth it to have a helper to queue that async (like for stream creating asyncs) which would make it really async and it is more straightforward to just add the sync implementation directly linked to the synthesis class. Once actual synthesis is implemented the implementation would (asynchronously) create the stream with ready data and the present stubs will only need to hook up the stored buffer data.