Truncate day of month in TimeZone#parse.

As described in #14543, supplying missing components of a date from TimeZone#now runs into problems when now.day is greater than the number of days in the month. This can cause situations where parsing "February" when it's the 31st of January causes TimeZone#parse to return a day in March.

This problem could be resolved by setting the day of the month to be:

```ruby
[Time.days_in_month(month, year), parts.fetch(:mday, now.day)].min
```

Which truncates the day of the month, avoiding any date-overflows.

@robin850 What do you think?