Make WWidget::m_bOff private.
Oops. Make selectBool callers provide default values.
Rename WWidget::setValue to WWidget::slotConnectedValueChanged.
Remove direct access to WWidget::m_value from child classes.
Remove ControlObjectThreadWidget use in WNumberPos.
Oops, I screwed up multi-state toggle buttons while getting rid of m_value access.
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.
Get rid of COTM use in WNumberPos.
Use ControlObjectSlave for widget connections. After this we can delete ControlObjectThreadMain and ControlObjectThreadWidget.
Revert changes to add a parameter signal to ControlObjectSlave.
Merge pull request #147 from rryan/cos_widgets

Use ControlObjectSlave for widget connections.
Add getParameterForValue method to ControlDoublePrivate and ControlObjectSlave.
Use getParameterForValue in ControlWidgetConnection to process the value from
the valueChanged() event, not the latest control value.