More powerful recipe tests in preparation for refactorings

* slime-tests.el (slime-test-recipe-test-for): Simplify and make
more powerful.
(slime-test-recipe-check-repl): Removed it
(readme-recipe-autoload-on-lisp-visit): Adapt to new
`slime-test-recipe-test-for'. More readable.
(readme-recipe, traditional-recipe): Idem.
Use a custom method-combination for definterface.

This should give better M-. support.

* swank-backend.lisp ([method-combinations] interface): New
(definterface, defimplementation): Use it.
abcl:  DESCRIBE-DEFINTION now works for macros.
Merge pull request #104 from easye/master

abcl:  DESCRIBE-DEFINTION now works for macros.
Merge branch 'master' into interface-method-combination
Set :documentation of generic function in definterface.

* swank-backend.lisp (definterface):
* swank-backend.lisp: Whitespace cleanup.
Create separate Makefile for contribs.

* .travis.yml (env): Use contrib-% targets.
(script): Use make variables instead of env vars.

* Makefile (EMACS): Renamed from EMACS_BIN.
(LISP): Renamed from LISP_BIN.
(ELFILES, ELCFILES): New vars.
(default, all, help, help-vars): New targets.
(compile): Don't compile contribs.
(check): Don't put contrib/ into load-path.
(contrib-check-%): Renamed from check-%.
(contrib-elpa-%): Renamed from elpa-%.
(contrib-compile): New.

* contrib/Makefile: New file
(elpa-%, check-%): Moved to here from core.
Mention SELECTOR.

* Makefile (help-vars):
Avoid echo -e which apparently is not very portable.

* Makefile (help, help-vars): Use printf instead of echo -e.
Update ChangeLog.
Test to triger travis.
Merge branch 'makefile-cleanup'
Update ChangeLogs
Use prin1-to-string instead of with-temp-buffer.

* slime.el (slime-prin1-to-string): It's simpler and avoids some
of the deactivate-mark issues.
Don't try to compile already compile functions.

* slime.el (slime--compile-hotspots): New function.
* slime.el (slime-load-hook): Run load-hook the end.
* inferior-slime.el: Require 'slime for macros at compile time.
* inferior-slime.el: Whitespace cleanup.
* slime-scratch.el: eval-and-compile is redundant around require.