Use *macroexpand-hook* in sbcl-world-lock test.

This deadlocks when executed with cold dispatch caches, e.g. with:
make SELECTOR=sbcl-world-lock-1 LISP=sbcl check

* slime-tests.el (sbcl-world-lock): Use *macroexpand-hook*.
* slime-tests.el (sbcl-world-lock): Fix docstring.
Closes #103. Loading contribs does not require slime-tests or ERT.

Tests are stored separately.

* Makefile (contrib-check-% check-%): Restore the check-<contrib>
target.
* .travis.yml (env): Use it.

* slime-tests.el (defun): Adapt to new contrib-tests location.
(readme-recipe, traditional-recipe): Don't use ert macros in
recipe tests, since ert might not be loaded.

* slime.el (slime-contrib-dependencies): New function.

* contrib/Makefile: Fix whitespace.
(check-%): Look for tests under /contrib/tests. Explicitly require
all needed test libs.

* contrib/inferior-slime.el: cleanup whitespace.

* contrib/slime-repl.el: Split off tests. Don't use `eval-and-compile'
* contrib/slime-presentations.el: Idem.
* contrib/slime-parse.el: Idem.
* contrib/slime-mdot-fu.el: Idem.
* contrib/slime-fontifying-fu.el: Idem.
* contrib/slime-enclosing-context.el: Idem.
* contrib/slime-c-p-c.el: Idem.
* contrib/slime-autodoc.el: Idem.

* test/slime-presentations-tests.el: New file.
* contrib/test/slime-parse-tests.el: New file.
* contrib/test/slime-mdot-fu-tests.el: New file.
* contrib/test/slime-fontifying-fu-tests.el: New file.
* contrib/test/slime-enclosing-context-tests.el: New file.
* contrib/test/slime-c-p-c-tests.el: New file.
* contrib/test/slime-autodoc-tests.el: New file.
Make safe-condition-message a bit safer.

CCL ignores *print-cirlce* when *print-pretty* is t
so it's easy to run into endless recursions.

* slime-tests.el (report-condition-with-circular-list): Use
with-standard-io-syntax to override settings from init files that
any reasonable person would have.

* swank-backend.lisp (print-condition): Replaces
format-sldb-condition.  Take a stream as argument so that we can
pass in our stream with limited output length.  No guarantee of
course that this stream will be used in a reasonable way.
* swank-clisp.lisp (format-sldb-condition): Deleted. Whitespace is
now removed anyway.
* swank-sbcl.lisp (print-condition): Use the stream argument.

* swank.lisp (%condition-message): Renamed from
condition-message. Trim whitespace from the result.
(%%condition-message): New function. Use with-string-stream.
Since the length of the string is limited we can also limit
*print-length* without losing anything. Also handle
SERIOUS-CONDITIONs instead of ERRORs, which would have handled
CCL's VECTOR-SIZE-LIMITATION condition during printing.
(safe-condition-message): Just call
*sldb-condition-printer*. People who set that will know what
they're doing.
ChangeLog entry
* Makefile (slime.elc): Rebuild .elc if ChangeLog changes.
Canonicalize 'nil to nil when displaying default optional and
keyword arguments via slime-autodoc. On SBCL this turns
  (error 'simple-condition
         &rest arguments
         &key (format-arguments 'nil) (format-control 'nil))
into
  (error 'simple-condition
         &rest arguments
         &key format-arguments format-control)
which should be more readable.

* swank-arglists.lisp (canonicalize-default-arg): New function for
canonicalizing optional and keyword arguments.
(make-optional-arg, make-keyword-arg): Use it.
Test with 64-bit SBCL and clean up .travis.yml a bit

(We were previously using the 32-bit version because that version
 is older than the 64-bit version which was failing some autodoc
 tests.)
Closes #9: New output respects existing REPL results or presentations.

* contrib/slime-presentations.el (slime-presentation-write-result): Idem,
but for presentation results.

* contrib/slime-repl.el (slime-repl-emit-result): After emitting a result,
        update `slime-output-end' marker.

* contrib/test/slime-repl-tests.el (mixed-output-and-results): New test.
When enabling a contrib, dependencies are also enabled recursively.

Without this, setting up or testing a contrib dependending on others
often fails. Assumes enable functions are quick and idempotent.

* slime.el (define-slime-contrib): Call enable functions for
dependencies recursively. (slime-contrib-all-dependencies):
Renamed from `slime-contrib-all-dependencies'

* contrib/Makefile (check-%): Remove redundant `slime-setup' call and call
`slime-contrib-all-dependencies'.