Fix lifetime issue in PlayerManager static methods.

The static ControlObject* can outlive the PlayerManager so it's unsafe
to keep a pointer to them. Use a ControlObjectSlave* instead and check
it for validity.
Extract interface from BaseTrackPlayer and PlayerManager.

This will make mocking and faking them much easier and prevent
implementation details from being exposed elsewhere in Mixxx.
Add number-of methods to PlayerManagerInterface.
Delete obsolete include directives
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:
- Apple CoreAudio
- Windows Media Foundation

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