Improve scrolling

Only scroll if we're at the bottom of the buffer, otherwise things will jump. I consider this behaviour a lot more natural (and it's also how e.g. irssi and probably ncurses-WeeChat handle scrolling).

It might be worth a thought to consider incoming messages as unread when they're not visible because they're scrolled out. We would have to mark them as read when scrolling them into view though and I'm not sure if that is terribly consistent. Discussion required? ;)

Closes #106.