Add value proxies

Value proxies are functions that can be set on widgets representing
numbers such as ctkDoubleSpinBox, ctkDoubleSlider... The proxies decouple
the values displayed from the input value.

For example, one might want to manipulate celsius in the code but to
display fahrenheits. In that case, a "celsius to fahrenheit" linear value
proxy can be added to the widget. The displayed values will be in
fahrenheit while the value given by the widget signals and accessors will
be give celsius.

Note, the minimum, maximum, single step and decimals apply on the spinbox
displayed value. If the spinbox limit is 200 and the proxy value a function
like f(x) = x - 30, then one can call setValue(212) on the widget. The
value displayed will be 182 and the signal valueChanged will give 212.
A setValue(256) however will be have a display value of 200 and the signals
valueChanged give 230.

The base class for value proxies is ctkValueProxy. Subclasses should
reimplement the methods valueFromProxyValue() and proxyValueFromValue().
Propagate value proxy to other widgets

--WIP-- ctkRangeWidgetValueProxyTest is failing

Adding the value proxy to ctkDoubleSlider, ctkSliderWidget and
ctkCoordinatesWidget.
For ctkDoubleSlider, the proxy is added much like it was for the double
spinbox.
For the ctkSliderWidget, since it's using the ctkDoubleSlider and the
ctkDoubleSpinBox, we can simply pass the value proxy to these. The same
thing applies to ctkCoordinatesWidget.

The tests added are very similar to the ctkDoubleSpinBox test, just tweaked
to these classes specific API.