When sitting at the bottom of a room with cursor = Cursor::Bottom, a
rerender would make the cursor jump to the lowest visible message. This
of course should only happen when the screen is scrolled, not on almost
every rerender.
This also moves the Cursor definition back to the cursor module, and
modifies it to include info about the last non-editor/non-pseudo
position in editor/pseudo cursors (to be used when editing or waiting
for the server reply is aborted via Escape)