Fix PortAudio underruns (#132) by using async playback

This switches to async playback and fixes the periodic underruns observed in issue #132. Suggestions on style are welcomed.
You just popped the first element in the queue, so there may very well be more data available for playback in the queue.