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

Adding the value proxy to:
 - ctkDoubleSlider
 - ctkSliderWidget
 - ctkCoordinatesWidget
 - ctkRangeWidget
 - ctkDoubleRangeSlider

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.
For the others, it's like the ctkDoubleSpinBox. The proxy is set between
the values accessors.

The tests added are very similar to the ctkDoubleSpinBox test, just tweaked
to these classes specific API.
Update displayed value when value proxy is modified
Apply ValueProxy to widgets min and max
Propagate internal use of ctkQDoubleSpinBox to qttesting tests
Fix decimals in ctkCoordinatesWidget with DecimalsByKey

Issue http://www.na-mic.org/Bug/view.php?id=2973
ctkDoubleSpinBox now keeps original precision until edited

QDoubleSpinBox rounds the input value with a given decimals number.
This can loose important precision. Here we apply the same mechanism as
for ctkDoubleSlider: store the original value with full precision.

http://www.na-mic.org/Bug/view.php?id=3261
Add ctkDoubleSpinBox::SizeHintPolicy

Sometimes we don't want to bound a spinbox with a min and max.
If the minimum and maximum of the spinbox where very large, it would
enforce a wide spinbox.
With SizeHintByValue, the spinbox takes only the space it needs.

ctkCoordinatesWidget is no longer bounded by default.
Merge branch 'ctkvalueproxy'

* ctkvalueproxy:
  Add ctkDoubleSpinBox::SizeHintPolicy
  ctkDoubleSpinBox now keeps original precision until edited
  Fix decimals in ctkCoordinatesWidget with DecimalsByKey
  Propagate internal use of ctkQDoubleSpinBox to qttesting tests
  Apply ValueProxy to widgets min and max
  Update displayed value when value proxy is modified
  Propagate value proxy to other widgets
  Add value proxies

Conflicts:
	Libs/Widgets/Testing/Cpp/CMakeLists.txt