Breaks started from the menu in reading mode used to end on
their own once the due break's length passed, so work started
counting before the user was back. They now last until input,
which makes them identical to an ordinary idle_start, so the
reading_break event and its cap logic are gone.
After skip_long empties the log, reading mode dropped every
idle_end because none followed a break, so the timer never
got a start point and stayed frozen at full intervals.
Snooze hides overdue breaks for a configurable time (default 5m),
including any break that comes due during it. Snoozing again
restarts it, taking a break ends it, and it is ignored when no
break is due. Timers keep counting, so the true overdue amount
shows once it ends. The widget shows the snooze countdown with
the overdue amount, the snoozed class, and a snoozed alt for
format-icons.
Also fix README examples: the overdue display never goes below
0:00, the long interval example was 45 seconds, and the config
example had a trailing comma.
Reading mode (Toggle Reading Mode) ignores automatic idle so
hands-off reading counts as work. Start Break begins a long break
if one is due, otherwise a short one; input ends it, and in
reading mode it also ends once the due break's length has passed.
Sleep and wake get their own break-event commands so they are
still logged in reading mode.
Rewriting the log replay also fixes two existing bugs: it looked
up the previous event in the full event list while iterating only
idle events, so pause events made it compare against the wrong
event, and current work time was not counted when the last log
entry was a pause event.