Add ctkDoubleSpinBox::DecimalsByKey, DecimalsByValue and ReplaceDecimals
Expose ctkDoubleSpinBox::DecimalsOption to other widgets
Fix ctkSliderWidget assert when changing decimals with DecimalsByValue

By blocking signals in ctkSliderWidget::changeValue, the change of decimals
(because of ctkDoubleSpinBox::DecimalsByValue) is not catched by
ctkSliderWidget and not propagated to the slider which causes a discrepancy
with the minimum/maximum values between the spinbox and the slider.
The test values come from a real case that was asserting in
ctkSliderWidget.
Fix ctkSliderWidget assert when changing decimals with Ctrl+'+'

For the test to work, ctkDoubleSpinBox::keyPressEvent had to be written.
The test values come from a real case where ctkSliderWidget asserted.
Other values were not triggering asserts.
Expose publicly ctkRangeWidget slider, min and max spinbox

It can be handy to tweak sliders and spinboxes.
Merge branch 'ctkdoublespinbox-decimalsbykey'

* ctkdoublespinbox-decimalsbykey:
  Expose publicly ctkRangeWidget slider, min and max spinbox
  Fix ctkSliderWidget assert when changing decimals with Ctrl+'+'
  Fix ctkSliderWidget assert when changing decimals with DecimalsByValue
  Expose ctkDoubleSpinBox::DecimalsOption to other widgets
  Add ctkDoubleSpinBox::DecimalsByKey, DecimalsByValue and ReplaceDecimals