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.
Adjust thread priorities according to discussion in Bug #1270583.
Show signal quality widgets if deck is configured, not just if it's enabled.
Reset user offset and sync adjustment when bpm or beatgrid change.
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