Implemented highlighting for string, label, bool, numeric and compound numeric plug value widgets.
Added bindings for boost::signal::connect() overloaded with a group number.
Implemented drag and drop between plugs in the NodeEditor.

Drags are initiated on the label for the plug. Left drag initiates a drag for connecting plugs. Shift-left drag and middle drag initiate a drag for transferring values between plugs
. The drop mechanism doesn't worry about where the drag originated, so colours may now also be dragged from the viewer and onto a plug.

Conversions of number->color, vecN->colorM, vecN->colorN are implemented for value dragging. Connection dragging is based on Plug::acceptsInput so floats cannot currently be connected to colours automatically - if we can implement CompoundNumericPlug::acceptsInput() to accept inputs from NumericPlugs then this should just work.
Fixed shader nodes to cope with connections between parameters.
Added useful tooltips for all PlugValueWidgets.

Previously they were only available on LabelPlugValueWidgets created within a PlugWidget. Now they are available on all PlugValueWidgets, and are customised based on the type of widget.

Also deprecated label and description parameters for the PlugWidget - they should always come from the metadata now.