The responsibility of marking changes as read is being moved from
the service level to the changes application. This approach scales
better.
It makes it possible to use the changes service for other internal
purposes. For example, it's being used internally as part of
implementing a Gerrit notification v2 service.
It also means the changes application can decide to mark a thread as
read when the user scrolls down and sees the new content, instead of
right away on page load.
In general, it's easier for the changes application to know (with more
certainty) when a change has been read by a user.