Update key when keylock changes.
Automatically update notations when the notation preference changes.

* Adds key_id column to the schema, version 19.
* Write key_id on track insert/update.
* If key_id is present when displaying track in library,
  instead of showing key string, format string according
  to notation preference.
After flushing RubberBand, read from it again and then reset it.
Zero remaining frames if we didn't scale all the requested samples in EBSRB.
Add a counter for EBSRB underflows.
Merge branch 'master' into features_key

Conflicts:
	src/bpm/bpmscheme.cpp
	src/bpm/bpmscheme.h
	src/bpm/wavesegmentation.cpp
	src/bpm/wavesegmentation.h
	src/segmentation.cpp
	src/segmentation.h
	src/tonal/ChordCorrelator.hxx
	src/tonal/ChordExtractor.hxx
	src/tonal/ChordSegmentator.hxx
	src/tonal/CircularPeakPicking.hxx
	src/tonal/CircularPeakTunner.hxx
	src/tonal/CircularPeaksToPCP.hxx
	src/tonal/ConstantQFolder.cxx
	src/tonal/ConstantQFolder.hxx
	src/tonal/ConstantQTransform.cxx
	src/tonal/ConstantQTransform.hxx
	src/tonal/DiscontinuousSegmentation.hxx
	src/tonal/FourierTransform.cxx
	src/tonal/FourierTransform.hxx
	src/tonal/InstantTunningEstimator.hxx
	src/tonal/PCPSmother.hxx
	src/tonal/Segmentation.cxx
	src/tonal/Segmentation.hxx
	src/tonal/SemitoneCenterFinder.hxx
	src/tonal/TonalAnalysis.cxx
	src/tonal/TonalAnalysis.hxx
	src/tonal/tonalanalyser.cpp
	src/tonal/tonalanalyser.h
merge with master branch
Merge branch 'master_sync' of github.com:mixxxdj/mixxx into master_sync
Move pickSyncTarget to EngineControl. Call setEngineMaster on all EngineControls.
Merge branch 'master' into multiplyFolders
Merge branch 'master' into features_key
Merge remote-tracking branch 'origin/master' into master_sync

Conflicts:
	.gitignore
	mixxx/src/util/fifo.h
Add shortestStepsToKey and shortestStepsToCompatibleKey to KeyUtils along with tests and a few other handy utility methods.
Add 'sync_key' control that pitch-shifts the current deck to match the key of the sync target.
Make right-click on SYNC do sync_key instead of beatsync_tempo in Deere 1280x800.
Merge branch 'master' into multiplyFolders
Merge branch 'master' into features_key

Conflicts:
	src/basetrackplayer.cpp
	src/engine/bpmcontrol.cpp
Merge branch 'master' into features_key
Add new icon for Preferences > Key Detection which replaces the current temp. icon. Add icon as vector to the icon template. Add a vertical spacer to dlgprefkeydlg.ui that prevents QGroupBoxes in there to grow infinitely.
Update the new key detection icon to use the standard gradient used elsewhere in the preferences