Rework device handling
Now use MMDeviceAPI to query the available list of devices and their GUIDs.
This ensures the device list, the names and IDs, are consistent across the
system. On Windows, OpenAL Soft allows specifying a stringified GUID as a
device name to open.
In the future, this could directly use MMDeviceAPI for the output with OpenAL
Soft's loopback extension. This would have the benefit of improved internal
synchronization with updates, though with the downside of less auto-
configuration on OpenAL Soft (buffer metrics, output format, resampler, etc).