Deal with a few readtable issues.

As observed by Tobias Rittweiler in the named-readtables Quicklisp
system, the complex logic in our SET-SYNTAX-FROM-CHAR had dubious
behavior which I've tried to rectify.

- It was possible to create a broken dispatching macro character
  with no dispatch table by using the arguably incorrect code:
   (SET-MACRO-CHARACTER #\% (GET-MACRO-CHARACTER #\#))
  This works now, where "works" is defined to mean that the
  dispatch table is shared, and alterations to the shared
  table will be seen by either dispatch character.

- On the other hand it is no longer possible to use
  SET-DISPATCH-MACRO-CHARACTER on a character which became
  non-dispatching by dint of using SET-MACRO-CHARACTER on it.
  This seems to have been an oversight that previously
  dispatch tables were sticky, which allowed a weird trick in
  sb-cover. Now a character will not be treated as dispatching
  if SET-MACRO-CHARACTER is used on it unless the function was
  obtained from GET-MACRO-CHARACTER of a dispatching character.

- Short of binding an error handler there was no way to express
   (unless (already-dispatching-p char)
     (make-dispatch-macro-character ..))
  Nearly all other Lisp implementations allow repeated invocation
  so now we do too.

Because a slot was removed from READTABLE that named-readtables
needed, there is a hopefully short-term compatibility hack in place.
Fix explanatory comment for *HANDLER-CLUSTERS*
Simplify %HANDLER-BIND by introducing local functions

Also add basic tests for HANDLER-BIND.
Fewer *HANDLER-CLUSTERS* special re-bindings in SIGNAL
Remove extra initialization
Slightly unbreak named-readtables per my latest changes.

The compatibility API that is exposed for dispatching characters
can coerce fdefns to symbols, but there is still a problem that
non-dispatching character functions are groveled out and passed
to SET-MACRO-CHARACTER which won't work in general.

Related problem in sb-cover - it did not understand that
GET-MACRO-CHARACTER could return a function-designator.
Remove another 100KB of junk strings from the image.
Silence "unable to dx-allocate" notes from MAPfoo transforms
Implement SIMPLE-FUN-P more efficiently
Put in a random comment about structure dumping
Fix grammar mistakes pointed out by Cyrus Harmon
Add two more known cases to checkgen

OBJECT-NOT-TYPE-ERROR 'FUNCTION -> OBJECT-NOT-FUN-ERROR, etc.
Implement COERCE-SYMBOL-TO-FUN more efficiently.

Rather than two globaldb inquiries we can do with just one.
(FDEFINITION is conceptually a globaldb inquiry)
As a side effect, this gives saner behavior in the perverse case
in which the compiler's understanding of function :KIND differs
from the runtime's reality.
Get rid of a kludge by Nikodemus and revise a stale comment.
Change x86-64 disassembler not to be so mousy.

I found it's lack of conviction as to whether something was a
static symbol to be disconcerting.
Address style issues in DEF-IR1-TRANSLATOR

- It's not particularly useful from a user perspective to
  see that SETQ's signature is (&WHOLE SOURCE &REST THINGS).
- Don't DEFUN the guard, muck with it, then fmakunbound it.
  Just set the special operators's SYMBOL-FUNCTION in one go.
- Building the cross-compiler warned about unused variables.
A minor triumph of OAOO for all OBJECT-NOT-<x>-ERROR numbers.

This change:
- Makes it easier to add new errors in compiler/generic/interr.
- Removes the ad-hoc code in checkgen which I had just added to
  map certain type specifiers to internal error numbers.
- Enables collection of a list of type specifiers for which
  checkgen would be more compact if it had a specific error
  number instead of using OBJECT-NOT-TYPE with a symbol.
- Adds a bunch of new error numbers.

On x86-64 the core size is reduced by 300KB.
Change :skipped-on (not :sb-unicode) to #+sb-unicode

The #\ syntax is unparseable.
Rewrite DEFERR more concisely.

&REST argument handling was pointless because its only use was error 0
"unknown error" which could already be handled by INTERNAL-ERROR.
Having eliminated that, the call convention is much simpler.
MAKE-SEQUENCE signals correct error for incompletely user-defined sequences

For the following situation:
- result type is a type specifier designating a DEFTYPEd type
- the type expands to a the name of a user-defined sequence class
- not all mandatory sequence protocol methods are define for the
  user-define sequence class
MAKE-SEQUENCE used to signal a SIMPLE-TYPE-ERROR referring to the
unexpanded type specifier, instead of signaling a
SEQUENCE:PROTOCOL-UNIMPLEMENTED error.

Fixes lp#1315846.