Remove class-hierarchy restriction from structural redefinition

Previously we restricted structural redefinition such that 2 or more
classes could not be redefined at the same time if one is a superclass
of the other and the superclass was undergoing structural
redefinition. This was done to simplify the creation of new objects.
This restriction is now removed by having the superclass take over the
creation of new instances for any subclasses, even if they are
redefined too.

Test: ./test.py --host
Bug: 134162467
Change-Id: I8ae76e3b1fd17c1cf2a9993d7b82ed21a61503ef
15 files changed