Fixed code style in EngineDelay
Removed echo from EngineDelay. Solution copied from pfl_delay.patch from Ywwg Bug #225966
Added EngineDelay for Master and Headphone output
bypass delay puffer if
Bypass delay buffer if delay is 0
add apreference option for delay
Tweak prototypes: Use const; CSAMPLE and avoid ambigous long
Introduce SampleUtil::clear() and use it
splitt m_pSoundManager->requestBuffer()
setup infrastructure for read write mode
Fixes for using multiple soundcards.

* Add a FIFO to AudioOutputBuffer.
* After engine processing, for non-clock reference devices write AudioOutput
  buffers to AudioOutput FIFOs.
* When composing output buffers, if the device is not the clock reference, read
  samples from the AudioOutput FIFO instead of the AudioOutput buffer.

Potentially resolves many instances of Bug #1203249. For my internal soundcard
and NI Audio 10 the crackling in the headphone output is completely gone. This
does not fix instances of clock drift but it provides us the tools (FIFO length
-- buffer overflows and underflows) for measuring clock drift and adjusting for
it with gradual time-stretching.
Feed the non clock reference devices from the reference device callback.
Use a two page buffer to have only on PA call for writing.
read m_pStream only one time per function and made it volatile to avoid possible race conditions
Fix crystal drift and error in memcpy size calculation
Merge remote-tracking branch 'upstream/master' into two_soundcards

Conflicts:
	src/sounddeviceportaudio.cpp
	src/soundmanager.cpp
	src/soundmanager.h
get rid of m_pDownmixBuffer buffer
Merge remote-tracking branch 'upstream/master' into two_soundcards
Finished read buffer part.

This does not work well if the clock reference card is a USB 2.0 soundcard.
So we need to switch back to a two callback solution
Merge remote-tracking branch 'rryan/multi_soundcard_fixes' into two_soundcards

Conflicts:
	src/sounddevice.cpp
	src/sounddevice.h
	src/soundmanager.cpp
Merge branch 'master' into multi_soundcard_fixes