Reinvented auto-scrolling (thanks @sylae!)

The auto-scroll flag is now only recalculated
when the user manually scrolls the chat list.
This means the user will no longer lose autoscroll
if a single message fails to scroll properly.

Now that this feature works, it makes a manual
autoscroll setting entirely unnecessary. The only
use case for switching it off is to read the
backlog, which will now disable it automatically.