Revert^2 "Allow structural redefinition on non-final classes."

We were incorrectly racing with the rest of the runtime in a couple of
places. First we would return an ObjPtr of a newly defined class after
holding it over a suspend point. This could lead to DefineClass
returning an obsolete class in some cases.

We also failed to ensure the class-status was synchronized between the
old and new classes during structural redefinition. This could lead to
a class appearing to go backwards in status.

This reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d.

Reason for revert: Fixed issues causing test failures.

Test: ./test.py --host
Bug: 134162467
Bug: 144168550

Change-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12
47 files changed