Rework the audio code to use a circular buffer
Fix unhandled SIGIOs on ALSA/Linux