Add value proxies

Value proxies are essentialy functions that can be set on widget. They
decouples the values displayed from the value used in the algorithms.

For example, one might want to manipulate celsius in the code but to
display fahrenheits. In that case, a celsius to fahrneheit 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 and maximum value 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 170.

The base class for value proxies is ctkValueProxy. Its subclasses should
implement the methods valueFromProxyValue() and proxyValueFromValue().