COMConstructEXT - Entry point for improved compatibility with COM wrappers

About
-----
This entry point is needed for scenarios when you need to create the FAudio
object, but are unable to provide the parameters that FAudioCreate asks for by
default. This is typical in COM wrappers where XAudio2 (<= 2.7) programs will
first construct the object (as requested by CoCreateInstance), then call
IXAudio2_Initialize with the 'Flags' and 'XAudio2Processor' parameters
afterward.

Dependencies
------------
This extension does not interact with any non-standard XAudio features.

New Procedures and Functions
----------------------------
FAUDIOAPI uint32_t FAudioCOMConstructEXT(FAudio **ppFAudio, uint8_t version);

How to Use
----------
Instead of initializing FAudio with the traditional method...

	FAudio *audio;
	FAudioCreate(&audio, 0, FAUDIO_PROCESSOR_DEFAULT);

... you construct and then initialize as two separate function calls:

	FAudio *audio;
	FAudioCOMConstructEXT(&audio, FAUDIO_TARGET_VERSION);
	FAudio_Initialize(audio, 0, FAUDIO_PROCESSOR_DEFAULT);

FAQ:
----
Q: Should we create similar functions for other XAudio subsystems (such as XACT,
   XAPOFX, and XAudio2FX)?
A: No. While other objects in XAudio 2.7 (or lower) are initialized via COM on
   Windows, XAudio2 has a unique situation where the 'XAudio2Create' macro calls
   Initialize in addition to CoCreateInstance. All other creation macros simply
   call CoCreateInstance with no further activity, so it is easy to support them
   with the one exported 'Create' function.
