Have LDB understand UCS-4 strings instead of showing as #<ptr to...>

Also fix 2 warnings about comparison between signed and unsigned.
Fix compiler warnings in coreparse - printf's "%p" wants void*.
Use handy inline function instead of hairy expression.
Shrink symbols on x86-64 by putting tls-index in the header.

Using the upper 4 bytes of the header makes symbols take up
6 words instead of 8, reducing the initial core by 565KB.

The patch could theoretically be applied for 32-bit builds,
but using a 2-byte index limits the TLS_SIZE to 2^14 words.
This is sufficient at present, but I wouldn't want to undo
the space savings if it is decided that TLS_SIZE should
be enlarged by a factor of 8 or more in the future.

In C, tls_index_of() should be used in lieu of sym->tls_index.
This is defined to be the constant 0 for non-threaded builds,
so eliminates #ifdef LISP_FEATURE_SB_THREAD in three places.
Rearrange and fix whitespace.
Improve readability
Unbreak builds without sb-thread feature
compiler/sparc/subprim: Change LENGTH/LIST to use non-continuable errors.

  * There's a small stack of more to be done here, but the use of
continuable errors, while supported at least somewhat by the
runtime, simply isn't supported by the debugger, so there's no
point in using them over the non-continuable errors...  And these
are the last two use sites for continuable errors on SPARC.

  * There are a few more opportunities for excellence here, but
there are some fiddly little details involved, so they call for
separate commits.
compiler/sparc/macros: Kill the continuable-error trap noise.

  * We don't use continuable error traps anywhere, and the
debugger doesn't support them.  If anyone wants to resurrect such
support (and I can see it as a possibility), they can either dig
the old code out of source control or re-derive it themselves.
Move SPARC over to slimmed-down EMIT-ERROR-BREAK interface, part 1.

  * The prep-work has already been done in eliminating the
continuable error bits, now it's time for the first part of the
main show: adjusting the INTERFACE parts.

  * For this part we're just pushing a QUOTE from the guts of a
macro code generation function out to the call sites, matching the
other platforms that have already made this change.  We'll do the
actual implementation damage in part 2.
compiler/generic/array: Invert conditionals for EMIT-ERROR-BREAK changes.

  * This is the halfway point for these changes: Fully half of the
backends are on the new version of the interface while half are
still on the old version.

  * Instead of having the conditionals list the platforms that
have been updated (a list that can only grow), list the platforms
that have NOT been updated (a list that can be expected to shrink).
Move SPARC over to slimmed-down EMIT-ERROR-BREAK interface, part 2.

  * Now that the noisy touch-lots-of-files work has been done, we
can settle in to do the harder-to-validate bits that are entirely
contained within a single file.

  * Based somewhat on the PPC version in 1.0.28.16, with a
slightly different choice of implementation strategy, and a result
that hews closer to the code originally replaced.
compiler/sparc/subprim: Clean up a FIXME in LENGTH/LIST.

  * There's a longstanding FIXME in this code, due to it using two
type tests each time through the loop, even though one can only
ever trigger on the first iteration, and due to PPC being the only
other backend that does so.

  * Actually, it's worse than that: That type test that can only
trigger on the first iteration?  It can't, thanks to the VOP
:ARG-TYPES parameter...  Well, unless someone gets really careless
with their low-SAFETY code.

  * First, change the out-of-line error trap to use PTR rather
than OBJ.  Means the debugger can't always point out a variable at
fault, but also means that we only need the one error trap.  And,
as mentioned above, it'd take someone doing something broken at
low SAFETY for it to matter anyway.

  * Second, kill the inline error trap and its type test.

  * Third, do a partial unroll and loop rotation, putting the exit
test at the end so that we can do fall-through exit, and
duplicating it at the beginning so that we don't need to jump into
the middle of the loop body.

  * And the entire approach, with the exception of the use of
branch-delay slots, can also be done on PPC...  But not in this
commit.
Remove extra push/pop from alloc_tramp - no need to save r11 twice.
Undo my previous "fix" but save 2 bytes. Yay.
Fix two C warnings.
compiler/ppc/subprim: Apply most of the same LENGTH/LIST changes as on SPARC.

  * Second verse, not quite same as the first, because PPC doesn't
have branch-delay slots.

  * Move the error-trap out-of-line, remove the second type test,
rotate and partially unroll the loop so that the nromal exit just
falls out the bottom but we still don't have to branch into the
middle.

  * Justification and explanation is the same as for the SPARC
versions, not too many commits ago.
Use load-time-assigned TLS indices for x86-64 opportunistically.

This change makes SYMBOL-VALUE understand that whenever the BIND vop
will have forced the fasloader to assign a TLS index to a symbol,
so that the index may be used as the 'disp' field of an EA, subsequent
references to the symbol should do likewise rather than load the index
to be used as the 'index' field of an EA.

This approach causes nondeterminism of compiled code but so localized
that it seems a worthwhile tradeoff with no semantic impact.
We could easily add a declaration to the effect that a symbol should
always be assumed to have been given an index by the loader, thus
removing the nondeterminism.

Also:
- thread slots manifesting as special variables will never
  fallback to the symbol's global value.
- special variables in the COMMON-LISP package will always get
  an index. There aren't enough of them to make this problematic
  and it leads to nicer looking code for %WITH-REBOUND-IO-SYNTAX.
Fix debugger regression and also avoid style warning in genesis.
Fix access to slots of the thread struct.

Use actual symbols to determine whether a variable is specially
handled, not their names.