Introduce ChatScrollController owning all chat scroll behavior: - continuous bottom-follow intent tracked from LazyListState (not only on data change) - pixel-precise bottom detection (last item edge vs viewport, small tolerance) - streaming follow that pauses on upward scroll and never forces the reader down - tail updates keyed on messages/streaming/thinking/subagent/clarify - unread (new-message) count shown on the scroll-to-bottom FAB, cleared on tap - paging anchor preserved by message id across older-history prepend - all scroll commands (send/FAB/session switch/search/paging) serialized via one scope Closes #682 Co-authored-by: M57 <hy4ri@users.noreply.github.com>