This fixes a rather obscure bug with reshaping the entire class
hierarchy from ClassBuilder. The problem was introduced by accidentally
breaking the superclass/subclass invariant. The CS fixes this problem, by
doing so actually removes some code and documents the critical invariants
(both by putting comments into the methods affected and by making those
methods private which temporarily break the crucial invariants).
The class comment has been extended to document the fundamental assumption
that ClassBuilder needs access to ALL of the subclasses no matter where no
matter how they are created.