eventsByDate
fun <T> Iterable<CalendarEvent<T>>.eventsByDate(range: ClosedRange<LocalDate>): Map<LocalDate, List<CalendarEvent<T>>>
Groups events by each LocalDate they cover within range, sorted in canonical display order per day:
EventSpan.AllDay events (ordered by EventSpan.startDate, then CalendarEvent.title, then CalendarEvent.id)
EventSpan.Timed events (ordered by EventSpan.Timed.start, then EventSpan.Timed.end, then CalendarEvent.title, then CalendarEvent.id)
Iterates via epoch days (matching Orrery's existing Bolt optimization) to avoid DateTimeUnit.DAY allocation overhead.