In GC cards that are pointed to conservatively, wipe out unused words.
The unused words would act as false roots pointing to other objects
which would then be unnecessarily retained.  This could hold down
arbitrarily large trees of objects.

This commit carries a basic verbose print controlled directly by a
variable that I plan to remove later when I'm convinced it works as
advertised for a larger audience.  Tested with my toy at work and
found no instability and no slowdown.  My testing also indicated that
correct conservative roots are much more common than false ones, in
fact I found all to be valid (tested by severing them and crashing).
So this fix goes a long way only retaining valid objects across the
system.

This commit does not include further heap tracing tools that I talked
about before that I might add separately when I find a way to not make
the code too ugly.  I found that memory retention was largely caused
by mistakes in user code, not directly by this underengineering.  But
you couldn't prove that while the GC was randomly retaining things on
its own.
adjust the walker's handling of variables a little bit

The walker notes information about variable bindings (and symbol
macros) in the env-lock, but didn't look in the lexenv itself if
the env-lock lookup failed.  This had a bunch of consequences,
notably lp#1368305 and similar.

While we're at it, make the walker aware of global symbol macros
as well (lp#375326)
Remove (deftype sap-int () '(unsigned-byte 32/64)) on x86oids.

It's not used anywhere and is only defined on x86oids.
Fix issue with new GC fixes choking on padding, reported on x86 (32
bits).  Put useful error message for the next time a similar issue
comes up.

Fix cracauer-only indentation.
Fix non-x86/precise-gc build.