Started to redesign Heap. Each heap now contains a this, an external,
and a null object. Also, removed inner Container class. Rather than
storing all (UUID, ReferenceSlot) mappings to be able to replace a UUID
with another one (e.g. when an object becomes external), Heap now keeps
a replacedBy mapping that stores a mapping for each UUID that has been
replaced bu another one. This mapping is taken into account when the
Heap is asked to return the object for a UUID.