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
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

Similar cases (see the test) are disallowed in Java
Minor, delete outdated comment

Topsort is also used now in OverrideResolver
(TODO) Drop MutableClassDescriptorLite
(TODO2) Drop MutableClassDescriptorLite