Predicate of :NAMED defstruct must respect pseudo-type-hierarchy.
Prevent meta-conditions from cluttering some test output.

- The handlers for style-warnings had style-warnings in them.
- Don't throw through COMPILE. It prints that compilation was aborted.

This is a drop in the ocean - still way too noisy.
Derive type for POSITION{-IF,-IF-NOT} in non-hairy constant vector.
Improve type declarations in SET-CMT-ENTRY
Add more declarations to readtable manipulation.

This makes non-unicode builds elide all the GETHASH calls.
Small change to how DEFSTRUCT parses the :PRINT-blah options.

- The error message shown can generally avoid mentioning anything
  about the :TYPE option unless the :TYPE option was actually present.
- A sanity-check meant to assert (THE (OR SYMBOL CONS) (CAR ARGS))
  but it mistakenly asserted on ARGS which is tautologically nil or a cons.
Parse DEFSTRUCT more strictly.

Previously we disallowed repetition of :INCLUDE, but nothing else.
Now nothing is repeatable except :CONSTRUCTOR and :NAMED.

Also we accepted (DEFSTRUCT (FOO (:TYPE LIST) :PREDICATE) X) which isn't
right because the atomic form of :PREDICATE in the usual usage means that
a predicate is wanted, and the general remark in CLHS that option :<atom>
means the same as (:<atom>) applies, and (:predicate) is clearly defined
to mean that a predicate is requested with a default name of <NAME>-P.
This seemed incontrovertible, but I checked several other Lisps and found
that they allow that usage but do not define the predicate, exactly as SBCL.
Our excuse, so it seemed, was that TYPED-PREDICATE-DEFINITIONS had to guard
a defun with (AND PREDICATE-NAME (DD-NAMED DEFSTRUCT)) because we always
assigned a PREDICATE-NAME into the DD on creation, even if it would later
be set to NIL or changed. This was sloppy because it meant that macroexpansion
of a DEFSTRUCT would intern bogus symbols, and that an alternate-metaclass
struct falsely indicated in its DD that it had both a predicate and copier
when it has neither typically. There remains no reason for such slop.
Eliminate all the random SETQs in !COLD-INIT.
Remove a few redundant SPECIAL declarations.
Create bootstrap layouts in a slightly less abstraction-breaking way.
Trivial changes to genesis
Revise comment
Remove two obsolete exports
Improve the dumping of package tables during genesis.

- During cold-init before packages have been filled with symbols,
all symbols to be interned have their package slot set correctly.
This represents an inconsistent/impossible state normally,
but is immensely useful when examining a crash in early cold-init.

- Initial packages were intentionally oversized, but not all
of them gained additional symbols throughout the bootstrap process,
so this ended up being slightly wasteful, because resizing works
just fine, and we adjust them all again in 'save' anyway.

- The comment that "only symbols which actually have definitions ...
end up in the target packages" reflected an intent that did not
coincide with actual behavior. Extra symbols from package-data-list
affected the target. This is mostly fixed except for a hack that
assumes that every symbol in any package needed in "src/cold/warm"
is eventually needed. Notably, more than 200 symbols of SB-UNIX that
were possibly at some point manifest constants (e.g. READOWN) are
undefined and so do not appear now in the target.
Granted, package-data-list should be updated to reflect reality,
but the remainder of the problem is fixable with ease.

- *IN-PACKAGE-INIT* and *!DEFERRED-USE-PACKAGES* are eliminated.
Delete MOBY-UNINTERN, a holdover from CMUCL
Remove some imports
WITHOUT-PACKAGE-LOCKS needn't be re-invented in sb-gmp
Make package-data-list accept featureized sublists everywhere.
Dxify the lambda in PRINT-UNREADABLE-OBJECT
Fix WITH-PACKAGE-ITERATOR regression: grab vectors once and only once.