Call AudioOutput::onOutputConnected and AudioOutput::onOutputDisconnected on
device open and close.

We do this for AudioInput::onInputConnected/AudioInput::onInputDisconnected but
apparently never finished implementing the other half :).
Add simple tracking of connected AudioOutputs in EngineMaster when outputs are
connected and disconnected.
Fix race condition in clearing leaked controls.
Fix some uninitialized variables discovered using valgrind.
Don't change the scaler if it is over-ridden for testing.
Only force vinyl mode to absolute on seek if the deck is playing.
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 branch 'master' into transform

Conflicts:
	src/skin/legacyskinparser.cpp