Synchronize access to m_hNeedMoreSamples event in WASAPI renderer

- It was possible that event was set already NULL on the playback stop when rendering thread was still trying to check the buffer status
Fix crash on a playback stop when pipeline hasn't yet been initialized
Updated SoundTouch lib to 1.8.0 version

TODO: investigate if it is viable to remove CSoundTouchEx and use SoundTouch lib's multichannel support
Remove log entries even when not writing to the file
Store latency in WASAPI filter
TRACE log entries if TRACELOGENTRY is defined
Test result code for AUDCLNT_E_DEVICE_IN_USE when negotiating to avoid blocking
Use MPAR lock to lock MPAR state and scope base object's lock to just protect its state.
Log latency when it changes
Log rtPeriod instead of GetPeriod() because that's the right thing to log.
Set DD buffer size just in case it slips through.
Set latency in InitAudioClient so it's correct when we log it later.
Skip audio device selection if one isn't set
Set AUDCLNT_STREAMFLAGS_NOPERSIST flag when creating the audio device
Make sure m_Streams isn't null in TimeStretchFilter before using it

When LAV Audio is configured for bit streaming, but the audio device
does not support it a PCM type will be negotiated (which partially
enables the TimeStretchFilter). LAV Audio will then attempt a dynamic
format change to a bit streaming type and the TSF causes a NPE when it
tries to cleanup.
Avoid calculating the buffer size each time

Test and log the result (if failed) for GetTime when determining the
buffer queue length
Test the right format when deciding whether to allow bit streaming
Test for bit streamability in SetMediaType too
Address missed calls to GetOutputBuffer and GetPeriod
Treat device period in settings as a default value

So don't set it in InitAudioClient. Some filters (cough LAV Audio) test
multiple formats at a time and choose the one they want. When device
period is set it changes it permanently for the instance. This can cause
problems if a bit streamable format is tested (which lowers latency),
but a PCM type is selected after it (or dynamically changed later).