c9a9eaff

ical-recurrence: test that a UTC Until includes the instance that falls on it

UNTIL bounds a recurrence rule inclusively, but lessThanUntil compares
the instance's local time against the UNTIL instant read as a UTC wall
clock, without ever converting between the two.  The comparison is
therefore off by the event time zone's offset from UTC.

recurRecurrenceRuleLocalTimes cannot fix this on its own because it is
handed a bare LocalTime and knows nothing about the time zone; the
DateTimeStart is still available one level up, in
recurRecurrenceRuleDateTimeStarts.

For a zone east of UTC the last instance is dropped, as here.  West of
UTC the same comparison over-generates instead.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 1m01s 1s 1s 1m03s 1m01s
Eval 5m29s 13s 13s 5m43s 4m26s
Build 5m42s 0s - - 0s
Suite 1m01s 14s - - 1h44m26s