Allow specifying the start and end of the visible range in the picker.

Adds new pickerMin and pickerMax properties to _TimePicker, which can
be set indirectly through the TimeTextBox via the constraints property.
The old TimePicker had a `visibleRange` property but that doesn't really make sense anymore since we've changed how scrolling and sizing works.

Also a lot of general cleanup of comments etc.

Based partly on original patch from Joerg Sonnenberger, thanks!

Fixes [#18200](https://bugs.dojotoolkit.org/ticket/18200).

Supercedes PR #60.