Added a header with empty stub classes for the physical outputs
Extended LavPhysicalOutputFactory's abstract interface and created a file for common code
Implemented a minimal subset of common code
Setup to move the lockless ringbuffer into LavPhysicalBackend base class
Machinery to allow backends to safely have and stop background threads
Function for audio callbacks: sets a designated buffer to either the next buffer or zero
Audio backends are based around 3 callbacks.

- The initialization callback is set by subclasses to initialize the output.
- The writing callback fills buffers.
- The shutdown callback kills streams, etc.
Changed my mind. We can do this by virtual functions.
Declared a bunch of stubs for LavPhysicalOutput
Code to launch the background thread
The background thread is no-op, but runs until stopped
Finished the implementation of the background thread
Fixed a bunch of glaring LavPhysicalOutput bugs
Added a missing modulus
Added a startup/shutdown hook called from the LavPhysicalOutput background thread
LavPhysicalOutputFactory is a completely abstract class
Removed an unneeded friend declaration
Setup for portaudio backend
Implemented a portaudio callback for the portaudio backend
Finished a very preliminary implementation of LavPortaudioPhysicalOutput