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.

Also a lot of general cleanup of comments etc.

Based partly on original patch from Joerg Sonnenberger, thanks!

Fixes #18200.