Update getCompatibleKeys() to include the key as compatible with itself.
Update automatic display connection selection to use the last left-button or
no-button connection. If none are present, use the last right-button connection.
DlgPrefControls should not use DirectConnections for controls since it is not thread safe.
Print PortAudio version on startup.
Support Unicode sharp and flat symbol in traditional notation. Treat '#' and 'b' the same as the Unicode sharp and flat character for input.
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