Fix display related bugs.

* slime.el (slime--adjust-window-start): Consider the END argument
exclusive but count trailing newlines normally.  Adjust the
assertion so that (1- END) is the last visible position.
* slime-tests.el (display-region):  Add tests for the situation
when (1- END) should be visible but not END.
Update modeline more often.

The numbers in the modeline can be out of date when all RPCs
complete without user input; probably because modeline updating is
performed in some lazy way.

* slime.el (slime--recompute-modelines): Resurrected.
(slime-dispatch-event): Force modeline updates.
(slime-modeline-string): Deleted. The variable is no longer
needed.
Don't use cl-labels as it is miscompiled in some Emacs versions.

* slime.el (define-slime-contrib): Get rid of cl-labels.
(slime-contrib--enable-fun, slime-contrib--disable-fun): New
helpers.
Fix another off-by-one bug.

* slime.el (slime--adjust-window-start): Scroll one line more.
* slime-tests.el (display-region): Add test.