1.0.13.21: MAP-ALLOCATED-OBJECTS robustification
* There are two cases where we used to fail our AVER (SAP= CURRENT
END) in MAP-ALLOCATED-OBJECTS:
-- If we had constructed an unlucky bogus object or few during our
heap traversal, we might be just sufficiently out of synch to
overstep it.
-- If we allocated new objects past the original END during heap
traversal and, and the mapped over them.
* Fix the last case always: before calling the provided function,
check that the object ends before END.
* Fix the second case for fastidious callers (and add an optional
argument so callers can inform us about their fastidiousness) by
using MAKE-LISP-OBJ instead of %MAKE-LISP-OBJ. ROOM still uses the
old version, since the careful approach is too slow, and even
the slow path uses %MAKE-LISP-OBJ in the less-error-prone cases.
...so not quite perfect yet.