[osx] choose the best stream through scoring rather than ignoring anything after we find a potential match.
[osx] ensure we close the stream on Deinitialize()
[osx] Use a conditional variable for AddPackets() and simplify the renderCallback.
[osx] adds Drain() to wait for the ringbuffer to be emptied.
[TEMP] add logging to AddPackets to monitor sleep times