Some minor SoundSource fixes

Some minor fixes and cleanups.

SoundSource actually needs a complete re-design:
- Clear separation between audio and other metadata -> AudioSource
- Setters/getters for metadata in SoundSource do not need to be virtual
- TagLib dependencies could be removed from the header file of the base class
- SoundSourceProxy IS NOT a SoundSource, but rather a factory that creates SoundSource objects
- Clear distinction between "frames" and "samples" when reading audio data
- The code in the subclasses of SoundSource is even worse with lots of unnecessary cruft
Please revert this change. We prefer to use reference passing for const references only.
This helps recognizing during code review that we may change an object that is referenced from somewhere else es well. Or can we make the reference const?