Change class generation so that each type is validated once, rather than each time it appears in a type graph. Also report multiple validation problems, if they exist, rather than stopping on the first problem.
Change `ClassInspector` so that it does not visit the entire type hierarchy for every type that is inspected, but instead reuses the results of visiting super types.
Change `ClassInspector` so that it does not visit the entire type hierarchy for every type that is inspected, but instead reuses the results of visiting super types.