Implement structure accessors without closures.

Although closures save a lot of space, having the common
(find x sequence :key #'structure-slot) be slower than
(find x sequence :key (lambda (x) (structure-slot x)))
is neither easily discoverable, nor is a desirable way to write code.

Predicate and copier functions are also changed similarly.

This also fixes the problem of (setf (documentation accessor-closure
t) ...) clobber all other documentation set up in that way.

And another positive side effect,
(defun x-a (x) y) (defstruct x a)
didn't signal a redefinition of X-A warning, now it does signal it.

Closes lp#1264924.
Remove sb-kernel::protect-cl.

It's no longer used.
INVOKE-RESTART-INTERACTIVELY behaves like INVOKE-RESTART w.r.t. test-function

* INVOKE-RESTART-INTERACTIVELY no longer consults the restart's
  test-function when called with a RESTART instance, fixing interactive
  invocation of restarts with test-functions e.g. from the debugger.

* Tests have been added in tests/condition.impure.lisp.

* Note that this change amends commit 69e6aef which fixed bug 774410
  with the following change to INVOKE-RESTART:

  > INVOKE-RESTART is also affected by the changes for bug
  > 774410. However, it does not respect restart test functions when
  > called with a RESTART instance (This is underspecified in CLHS and
  > other implementations behave in various ways. However, behaving
  > differently would make some restarts un-invokable).

  commit 69e6aef should have changed INVOKE-RESTART-INTERACTIVELY in the
  same way.

Reported-by: Vivitron in #sbcl
Remove src/code/typecheckfuns.lisp.

It's no longer used.
STREAM-ERROR-POSITION-INFO signals errors in fewer situations

Previously, STREAM-ERROR-POSITION-INFO could signal errors for
non-character streams and closed streams.

Fixes lp1264902.