0a3648d0

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

ical-recurrence: carry the duration across a mismatched RecurrenceDateTimes

[section 3.8.5.2](https://datatracker.ietf.org/doc/html/rfc5545#section-3.8.5.2)

@
Value Type:  The default value type for this property is DATE-TIME.
   The value type can be set to DATE or PERIOD.
@

Appendix A.1 requires DTEND and DUE to use the value type of DTSTART and
requires nothing of RDATE, so an RDATE may hand an instance a value type
the event does not use.  The instance still has to end somewhere, so
carry the duration into the value type of the new start instead of
refusing it.

A whole number of days becomes that many days as an exact duration.  Its
inverse rounds up to whole days and never down to none, because a
DATE-valued DTEND is exclusive and cannot name part of a day, so a one
hour event becomes a one day all-day instance.

This also drops StartStartMismatch, which those two arms were the only
users of.  It described a mismatch between the value type of the original
start and of the new one, which is now handled rather than rejected, so
the constructor could no longer be produced.