mosaic: cleanup option handling using range enforcement
- cleaner code.
- places helpful bounds on controls in gui prefs that prevent cycling out of range.
- results in range hints being given in help output.
note that it is correct for ranges to be added where there is also a choice list. ranges are enforced, whilst choice lists are not. with a choice lists you're restricted to a droplist in gui prefs, however any value can come from CLI or saved settings. a range is enforced upon storing the value where ever it came from. thus it is correct and useful for them to be used together.