AutoDJ fixes.

* Remove QSignalMapper usage and instead proxy signals from
  DeckAttributes.
* Connect track load / unload / failed-to-load signals from
  BaseTrackPlayer. Lays the groundwork for solving Bug #1396931.
* Add a helpful debug flag for tracing AutoDJ calls.
* Remove PlayerInfo usage from AutoDJ for getting the loaded
  track. Instead, use BaseTrackPlayer itself.
Make DeckAttributes fields private.
Make the tests reflect how real players react to track load requests.
Remove unused variable.
Address review comments.
Merge pull request #410 from rryan/autodj

AutoDJ fixes.
Delete obsolete include directives
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.