Introduction of new AudioSource 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, which is still too much
unneeded coupling. I have some ideas how to resolve this, but first this
work needs to be integrated. I have 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:
- Windows Media Foundation

Unfinished:
- Apple CoreAudio
- 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.