Optimize FILL-POINTER function.

Declare that the FILL-POINTER-ERROR function called by the inline
expansion of FILL-POINTER doesn't return.
Make the second argument of FILL-POINTER-ERROR optional, so that
fill-pointer doesn't have to pass a NIL.
Micro-optimize CONSP and SYMBOLP VOPs on x86.

Save one byte by using the CMP instruction on the EAX register.
Eliminate deprecation warning from test
Ignore some unused variables.
Make :sb-show less noisy. Only if debugging stream issues might one care.
Get plain-old DEFSTRUCT mostly working as early as possible.

Part 1:
- Avoid package-lock stuff until early-package.lisp is cross-compiled
  so that WITH-SINGLE-PACKAGE-LOCKED isn't mistaken for a function.
  (Can't just use the host's macro since that is a no-op)
- Ensure that REGISTER-LAYOUT can find STRUCTURE-OBJECT's classoid.

Part 2:
- Allow the cross-compiler to dump some subtypes of STRUCTURE-OBJECT
  that are not STRUCTURE!OBJECT.

EXPANDER-FOR-DEFSTRUCT is now a function, not a macro,
and is present in the target image to make it less magic.

Also freeze-type of defstruct-{description,slot-description}.
Don't try to call PACKAGE-IMPLEMENTS-LIST without :sb-package-locks.
Fix nearly harmless omission in XC-DUMPABLE-STRUCTURE-INSTANCE-P.

Noticed by Jan Moringen.
The fix is pretty much untestable and has no effect in the target
anyway, so was just a sanity check in development mode.
Deal with 3000 lines of warning output during make-target-2
Save 3 or 4 bytes in SAFE-FDEFN-FUN on x86-64
Fix style-warning in test file
Tweak INFO-VECTOR-FDEFINITION
Improve %COERCE-NAME-TO-FUN and relatives
Optimize (coerce x 'complex).

Transform it into appropriate calls to COMPLEX, coercing to proper
float types as necessary.

Closes lp#1309815.
Optimize (coerce x 'character) into (character x).
Remove a-random-comma-object-do-not-use from the core.

Run the test at cold-init, that way it's no longer needed.
Add changed file missing from commit [f6f734]
Delete incorrect test attributable to lp#770184.

All this test proved is that internal inconsistencies exist.
`(,@X) means (APPEND X) regardless of X's value, even if an atom.
`(,@1) is 1, and likewise `(1 ,@2) is (APPEND '(1) 2) => (1 . 2).
Since (LET ((X 1)) `(,@X)) and `(,@'1) both produce 1,
suspicion ought to have been cast on this test case.

The crash was indeed a problem, with a proper fix pending.
Optimize array type tests.

By better grouping of widetags,
simple-{array vectors strings} complex-{strings vector array},
type tests for strings, simple-strings, vectors, simple-vectors, etc.
can be done with just one range comparison.
Optimize (coerce x 'function).

Use the otherwise unused COERCE-TO-FUN function.