Refactor audio classes.

AudioOutput has now been split into an Audio class that holds the
decoder, frame and output, and an AudioOutput class that handles
outputting to PortAudio.
Rename AudioOutput to AudioSink.

Because source/sink makes a better pair than decoder/output.
Rename AudioDecoder to AudioSource.
I give up.

Someone else can fix this
Fix the IO reactor up a bit.

I messed up the shared pointers.  Derp.