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
Don't make bogus things when creating large arrays.

With the change to 1-bit fixnums tags on x86-64, the condition that
the fixnum words converted to bytes still fit into the word length no
longer holds, which causes the number of bytes to overflow and produce
unexpected results.

Declare the number of words in ALLOCATE-VECTOR to be
(unsigned-byte (- sb-vm:n-word-bits sb-vm:word-shift)).
Fix code-deletion note reported on sbcl-devel 25-Jul-2013
Simplify WITH-INPUT-FROM-STRING and fix a bug therein (leaving another)
CCASE/ECASE/CTYPECASE/ETYPECASE error message done more nicely
Sadly, remove compilation unit around make-host-2 (temporarily?)
Restore x86 build.

The previous change to allocate-vector declared a variable to be
outside of the fixnum range, stopping ALLOCATE-VECTOR-ON-HEAP VOP from
being applied, resulting in an endless recursion.

Spotted by James M. Lawrence.
Quiet a handful of unused variable warnings
Remove obsolete option (that had meaning in CMUCL) from WITH-FOP-STACK
Eliminate !FDEFN-COLD-INIT by having genesis attach fdefns to symbols.
tests: add -fPIC for run-compiler.sh on ARM.

Fixes lp#1349830.
Split UIOP out of ASDF into its own contrib. While we're at it, update ASDF to 3.1.3 (an in asdf-stub, note that fasl-op is now compile-bundle-op).
ASSERT reports arguments in calls of lexical functions

ASSERT now checks the lexical environment in addition to the info
database to determine whether SYMBOL in

  (assert (SYMBOL . ARGS))

is a function and thus permits evaluating ARGS for the error report.
CHANGE-CLASS finalizes inheritance of new class if necessary

The methods on CHANGE-CLASS for

  FORWARD-REFERENCED-CLASS    -> STANDARD-CLASS
  FUNCALLABLE-STANDARD-OBJECT -> FUNCALLABLE-STANDARD-CLASS

did not ensure the inheritance was finalized before accessing the class
precedence list.