Implement dates restriction

Calendar has new `min` and `max` functions to define inclusive range of
valid dates.

Range checking is performed by DayRange implemented using Bounds.
When rendering calendar dates ourside of the range are rendered with
`invalid` CSS class, so that can they be styled differently from valid
dates.

Days will not fire 'change' event for invalid (out-of-range) dates.
Calendar ignores attempts to select invalid date, although is allows to
show it.
Document new `min` and `max` methods
DayRange fixes: inherit from Bounds