Plug up leaky abstraction that (%INSTANCE-REF struct 0) is a LAYOUT.
This is part 1 of the compact-instance-feature change, and motivated by
the design as sketched out in doc/internals-notes/compact-instance.
%INSTANCE-REF 0 was generally assumed to access an object's layout,
but this won't be true in general. Moreover, DO-INSTANCE-TAGGED-SLOT
won't scan an instance's layout, so any code that wanted to iterate over
all defined slots plus layout now needs to read the layout separately.
Additionally, gencgc has been made to use instance_length() and
instance_layout() accessors.
24 files changed: