Rename Time to TimeOfDay
Atoi() all the date fields & report errors better
Add a proper time.Time to Event
Rename Duration to IntraDayDuration
Add a proper time.Duration to Event
Don't store Day.  Compute it on the fly.
Encapsulate the "Day" format.
Call TimeDay only once for better readability
Don't store TimeOfDay.  Compute it on the fly.
Split events in split_by_day()

This obsoletes the splitting performed in generate_report(),
which will be removed shortly.
Store two copies of Duration in Event

so that when they are split by day, the original duration is still
available for the long description visible in the hover.
Stop copying events in generate_report()

Eliminate print_event(), which made the copy.

Remove the old splitting logic in generate_report that's no longer used.

Now that the original event's fields are available, DurationDescription
can use OriginalDuration.  This finally fixes durations for midnight-
crossing events.  Yay!

Remove the IntraDayDuration field from Event.  It is no longer used.
Give up on daylight savings time

Uses of time.Date() doom this.
Put day truncation in a separate function

for readability.