make GSettingsSpinButton aware of ranges defined in the schema

This makes GSettingsSpinButton aware of ranges defined in the schema.

It takes the min and max arguments passed to the constructor and compares them to the range, if and only if a range was defined. It then takes the more restrictive values as min and max for the button (bigger min, smaller max).