Minor, remove read check in WriteThroughScope

Without this, it's difficult to debug errors related to writing to the already
locked scope: if you set a conditional breakpoint in checkMayRead() on a
scope's toString(), its toString() will call getContainingDeclaration(), which
will call checkMayRead() again, resulting in StackOverflowError
Don't serialize signature to string to check against toString/hashCode/equals
Regenerate tests
Fix StackOverflowError on cyclic hierarchy Java<->Kotlin

Report errors not only when superclasses are MutableClassDescriptorLite, but
any classes

 #KT-2115 Fixed
Consider outer classes when topsorting hierarchy

- when building a topsorted hierarchy, consider not only edges to the class'
  superclasses, but also from inner/nested classes to their container. This
  effectively means that a class cannot inherit from its nested class. Similar
  cases (see the tests) are disallowed in Java.
- filter classes by their presence in TopDownAnalysisContext, not by being a
  MutableClassDescriptor (otherwise analysis for local classes ends up trying
  to do something with outer superclasses)
- delete outdated comment: topsort is needed not only for better diagnostics,
  but also for correct order of fake overrides construction
Drop MutableClassDescriptorLite

Inline it into MutableClassDescriptor
Minor, add assertion message