Fix #+(and immobile-space (not compact-instance-header)) some more
* set_instance_layout always stored a layout into the high bits of an instance
header even though it should be in slots[0]. Using it was seemingly harmless,
but the object got a bad pointer in its header, confusing if naught else.
Defining instance_layout() to be an lvalue makes it clearer, and exposed a
bug that fix_object_layout() before the call in instance_scan() during
defragmentation touched the stored instance layout more than once.
* Rename fin_layout() to funinstance_layout()
* Add another assertion into verify_range()
* Don't use instance_layout() to mean function_layout()