Type-check HANDLER-BIND more strictly, optimize condition handling a bit.
Handlers which are global functions (system or user-defined) no longer
require a freshly allocated cons cell to establish a binding.
In the best case, any number of handlers are established using only
1 cell because the whole cluster of handlers is a load-time constant
which can be consed onto the *handler-clusters* chain.
Each type test is stored as its classoid rather than a local function
when possible, since ultimately TYPEP will usually need the classoid.
This reduces code size by removing umpteen lambdas for (TYPEP X 'ERROR)
and is at least as fast as funcalling a predicate, possibly faster.
And also generate an "undefined function" warning for
(HANDLER-BIND (((SATISFIES NOT-DEFINED-FUN) #'action)) ..)