Refactored AudioStreamer to use a dispatch queue.
Differentiates between file and network URLs.
Uses NSStream instead of CFReadStream to read audio data.