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.