Marking the open message unread re-ran the mark-read-after-delay timer,
which found an expanded unread message and marked it read again: the
unread count showed 1 for a moment, then dropped back. With the default
delay of 0 it was re-read before the reader could leave the message.
ThreadView now remembers which messages have been read while the
conversation is open, and the timer leaves those alone until it is
opened again. A message that was read here and is unread now was made so
on purpose, by this reader or on another device. Mail that arrives
unread while the thread is open is still marked read as before.
Verified on the mock: on main the unread count never rises after Mark as
unread; with this change it rises and stays. The new component test
fails on main in both the reported case and after the timer has read the
message once. No new strings.
Not changed: the report also suggests going back to the folder after
Mark as unread. That is a behavior change, left for a separate decision.
Fixes#25. Reported by @mbjboon82.