Improved SplinePlugValueWidget drawing.

SplinePlugValueWidget now supports highlighting. SplineWidget now correctly paints within a border defined by the stylesheet, and caches the computation of the gradient used for drawing the ramp.
Fixed LabelPlugValueWidget to deal with plug == None case.

Also documented that derived classes should be able to handle plug == None in the PlugValueWidget.setPlug() comments. Currently, not all derived classes support this properly.
Fixed CompoundNumericPlugValueWidget.setPlug().

Previously, it wasn't updating the plugs referenced by its child NumericPlugValueWidgets.
Fixed NumericPlugValueWidget to handle plug == None and changing plug type.