Eliminate misleading precision in the bpm and rate displays.
* Show only one decimal place for bpm and rate
* Waveform stretch reacts more slowly to small changes in rate.
* Vinyl control bpm updates are much more sticky.
Reduce redundant subtraction
Have WNumbers the NumberOfDigits parameter and set a default of 1 decimal.
Show two places by default
Don't smooth waveform stretching.
Add compiler_is_gcc and compiler_is_clang variables to build object.
Add Clang-based features: address sanitizer and color diagnostics.
Remove unused BPMSCHEME_FILE and TRACK_FILE defines.
Turn headerpad settings into a proper linker-only command.

Clang complains it is not a valid compiler flag.
Add WComboBox, a QComboBox-derived WBaseWidget.
Reduce duplication in LegacySkinParser using some template methods.
Add WSplitter so that we can stop putting QSplitter in our style sheets (in case we want to replace it with a custom widget at some point in the future).
Use the right parent class for QWidget::event.
Fix test case on windows

This changes the code to make more use of Qt
to handle filepaths on several platforms. We should
also change the API to only accept QDir, QFileInfo
in the future
fix purge tracks on windows

Again we should change the API here to accept
QDir instead of a QString.
Boost vinyl control processing threads to high priority
Add user-visible name and description property for controls.

Eventually we can use this to automatically create tooltips based on widget
connected controls instead of using the tooltip_id in the skin. Also, for
dynamically changing controls (such as the Effect*Slot in the features_effects
branch) this allows us to change the tooltip on the fly based on the effect
loaded to the slot.
Output the empty string for toDebugString if QT_NO_DEBUG_OUTPUT is defined. Fixes Bug #1270622
Merge pull request #149 from ywwg/rate-ui-smoothing

Eliminate misleading precision in the bpm and rate displays
Only wake up EngineWorkerScheduler if there are worker threads to be started.