Modified the SQL search for keys so that it won't match for 11 if you
search 1.
The code is not close to perfect as I can't make RLIKE and '[ab]%' work
for some strange reason.
added some file into .gitignore
Changed to use key_id, now only exact match
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.
Delete ControlObjectThreadMain and ControlObjectThreadWidget.
Remove widget values.

* WWidget no longer stores a value independent of its connected controls.
* Make a connection explicitly the display value. For legacy reasons this is the
  last connection with connectValueToWidget.
* Update all WWidget descendents to use the connected display value when
  painting.
* Push buttons update the left or right connected control for push-button
  behavior or toggling.

This allows WPushButton to toggle a multi-state button on left and right
click. This was previously impossible.
Assert ControlWidgetConnection::m_pControl is non-NULL.