LateNight: Add quick effect knob.
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