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.
Introduce Speed instead of Pitch/Rate, to match other place in Mixxx and Manual
https://bugs.launchpad.net/mixxx/+bug/1283190
User Speed term for combined Pitch/Tempo control in ControlPickerMenu
Fix some var names and comments to Speed = Pitch / Tempo
removed unused getPitchIndpTimeStretch()
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.
Playback Speed without Slider
Increase/Decrease Speed
replace pitch-bend with Temporary Increase/Decrease Speed
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.