Fix `Time.parse` for out of range arguments with an offset

Guards against a `nil` return value from `Time.month_days` when offsetting date.
Out of range values are then caught when `Time.utc` is called (as usual).

Previously a `nil` return value from `Time.month_days` would have the `<`
operator called on it, and raise `NoMethodError`.