New AudioSource API in abstract base class

This is the first step towards a better/cleaner SoundSource API.
The operations for reading audio data have been moved into the
new abstract base class AudioSource.

Currently SoundSource inherits from AudioSource for technical reasons.
This is too much much coupling that needs to be broken up. I have already
some ideas on how to resolve it, but first this work needs to be
integrated.

During the refactoring I've noticed, that the quality and maturity of the
audio decoders for different file types greatly varies:

Good/mature:
- FLAC
- Ogg
- Opus
- WavPack
- libsndfile

Mediocre:
- MP3

Ugly/inefficient:
- M4A
- ModPlug

Untested AudioSource API:
- Apple CoreAudio
- Windows Media Foundation

Unfinished AudioSource API (just a hack):
- FFmpeg (ugly & buggy)

Especially the code for the M4A decoder should be revised and cleaned up as
soon as possible, followed by a review of the MP3 decoder. Reading audio
data must work as stable and efficient as possible. This has priority over
the improvement of the internal software architecture! The Media Foundation
and CoreAudio decoders should be revised by someone who knows those
platforms better than me.