Drag and drop updates.

* Don't allow dragging a track from a deck to itself. Bug #1395431.
* Unify DnD logic a bit.
* Fix drag-and-drop of playlist files to Library, Crates and AutoDJ in
  the sidebar.
Rename [Master],volume/headVolume to [Master],gain/headGain.

Alias volume/headVolume for legacy support.
LateNight: give the Quick Effects a proper name
Fix play-on-track-load when deck is at the end of a track. Fixes bug #1393231.

Play-is-not-possible logic fires when the deck is at the end of the
track. Added a check that we are not loading a track to this predicate.
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.
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.
LateNight: Make sure coverart setting is persisted
Add a BindProperty transformation for boolean Not
explicit cast to bool
Deere: Use new <Not> transformer
Merge pull request #413 from ywwg/not-transformer

Add a BindProperty transformation for boolean Not
Skip unloadable tracks in the AutoDJ queue. Fixes Bug #1396931.

* On track load failed remove the failed track from the queue and load
  the next track from the queue to the deck.
* Update existing on-enable test cases to check what happens after
  receiving track load success signals.
* Add test case for ADJ_ENABLE_P1LOADED state failing to load the
  first track.
* Add test case for ADJ_ENABLE_P1LOADED state failing to load the
  second track after successfully loading the first track.
* Add test cases for single-deck-playing AutoDJ enable failing to load a
  track in the non-playing player.
* Add test cases for P1FADING / P2FADING mode successfully loading a
  track and failing to load a track.
Add a note to prevent removal of a redundant looking set.