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.
* slime.el (slime--adjust-window-start): Handle start = end = 1.
Fix bug involving stale window-end.

Call window-end with update=t.  That works better than calling
redisplay when we scroll because window-end may be wrong even
without scrolling.

* slime.el (slime--adjust-window-point): Call window-end with
update argument.
(slime--adjust-window-start): Remove explicit call to redisplay.
* slime-tests.el (display-region): Actually check point ends up as
expected.  The old code was buggy and only checked for non-nil.
Stricter assertion

LAST should be visible as long as
REGION-HEIGHT <= WINDOW-HEIGHT not <.
Avoid some compiler warnings.

* swank-backend.lisp (utf8-encode): Avoid unreachable code
warnings.
(%utf8-encode): New helper.
* swank-sbcl.lisp (sbcl-wrap): Add ignore declaration.
Avoid some compiler warnings.

* swank.lisp (before-init): Don't call
warn-unimplemented-interfaces as it confuses first time users.
(thread-for-evaluation): Suppress unused var warnings.

* contrib/swank-asdf.lisp: Avoid unreachable code for version check.
(unique-string-list): Avoid unreachable code warnings.

* contrib/swank-fuzzy.lisp (*all-chunks*): Defvar it and declaim the type
to avoid type uncertainty warnings.

* contrib/swank-package-fu.lisp (export-structure): Suppress warning about
unknown function list-structure-symbols with #+.

* contrib/swank-presentations.lisp (*send-repl-results-function*): Defvar
it to avoid unknown var warning.
* Makefile (clean-fasls): Recognize more file extensions.
For CMUCL, make M-. work on condition classes.

* swank-cmucl.lisp (pcl-class-location): Renamed from
class-location.
(class-location): New.
(class-definitions): Search condition classes in infodb.
Fix compilation errors in the slime-c-p-c contrib
Release 2.9