Fix discrepancies in handling toplevel forms per CLHS 3.2.3.1

This patch makes compiler macros be consistently used in file compilation
subject of course to the stipulation that NOTINLINE disables them.
Previously the main compiler didn't use a compiler-macro if a global
functoid was both a macro and compiler-macro, and the use was toplevel.
The fopcompiler never used compiler-macros, toplevel or not.

Such behavior was opaque and inexplicable to users except by an explanation
involving discussion of the loader's DSL and what it is capable of versus
truly compiled - i.e. assembly language - code.
Even to document the kinds of forms that are amenable to fop compilation
as a "remedy" to this issue would be a brittle one.
Implement another atomic globaldb (INFO) primitive operation.
Type-class lint removal

- HAS-SUPERCLASSES-COMPLEX-SUBTYPEP-ARG1 is runtime, not bootstrap-only
- KEY-INFO structure slots must be read-only due to caching
- CONTAINS-UNKNOWN-TYPE-P could combine two cases
Disable inapplicable test if no sb-unicode feature
Avoid a GETHASH in constructor for each subtype of CTYPE.
Wrap a compilation-unit around make-host-2
Merge branch 'master' into unicode-algorithms