Fix SkinContext copy constructor to copy the base skin path.
Fix one more spot that I missed a [0,127] -> [0, 1] conversion in WWaveformViewer.
Make WLabel inherit QLabel instead of WWidget.

WLabel and its variants don't really need anything provided by WWidget. As far
as I can tell no existing CSS styles use WWidget to style WLabel either, so this
should be safe skin-wise. This also gets rid of WWidget::getComposedWidget since
its sole purpose was for styling labels.
Add WBaseWidget, a base class for holding logic common to all Mixxx widgets.

Since this class does not inherit QWidget, widget classes can inherit from a
QWidget descendent and also inherit from WBaseWidget without causing
multiple-inheritance diamond issues. This was a regular issue with WWidget.
Move widget tooltip handling to WBaseWidget.
Move disabled state into WBaseWidget. Rename to controlDisabled to prevent clashing with QWidget.
Expose widget connections directly to WBaseWidget rather than using Qt signals.

This paves the way for getting rid of widget values and adding the concept of a
display value vs. a left/right connected widget value. An added benefit is that
ControlObjectThreadWidget is now nothing more than a parameter-space translator
on top of ControlObjectThreadMain.
Remove WWidget::updateValue to simplify logic.