ical-recurrence: test a UTC Until across a daylight saving transition
[section 3.3.10](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10)
@
The UNTIL rule part defines a DATE or DATE-TIME value that bounds
the recurrence rule in an inclusive manner.
@
The bound is an instant, so whether an instance falls inside it is a
question about instants. Comparing local times answers that question
only while the instance and the bound share an offset from UTC: across a
transition the local order and the order of the instants disagree.
Expressing the Until in the time zone of DTSTART fixed the case where
every occurrence shares one offset, which is every fixed-offset zone. It
does not fix this one. Zurich goes back from 03:00 to 02:00 on the 30th
of October 2022, so the 30th at 02:30 is still at +0200 while the Until,
half an hour after it in absolute terms, is already at +0100. Compared
as local times the instance looks later than the bound and is dropped.
This can only arise for an instance inside the hour that happens twice,
which follows from the arithmetic rather than being a coincidence: the
disagreement needs the instance and the bound on opposite sides of the
transition while the instance is still at or before the bound. So the
expectation depends on reading that hour as the earlier of its two
readings, which is what chooseResolutionOffset already does and what the
daylight saving gap tests pin down separately.