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 is resolved by essentially setting the day of the month to be:

```ruby
[Time.days_in_month(month, year), parts.fetch(:mday, now.day)].min
```

@robin850 What do you think?