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
Minor: use directive with current ABI version in test data
Minor: fix always null warning
Automatically enable Kotlin plugin if it was disabled
Remove synchronous VFS refresh to avoid deadlocks (KT-4584)

 #KT-4584 Fixed
Show uninitialized descriptor's name in DeclarationDescriptor.toString()
Remove PSI in TraceBasedExternalSignatureResolver, AlternativeFieldSignatureData, AlternativeMethodSignatureData
Drop getExternal method from JavaSignatureFormatter
Move method createArrayType to JavaType and drop JavaElementFactory
Remove acces to JavaPropertyInitializerEvaluator through ServiceLoader by injecting it in GenerateInjectors
Implement formatMethod in JavaSignatureFormatter without PSI
Fix "Extract variable" for anonymous object suggests name "nonameprovided" (KT-4813)

 #KT-4813 Fixed
Use lazy resolve in name suggester
New Intention Action: Replace a call to forEach function with for loop.

Replaces an expression of form x.forEach { … } with for (a in x) { … }.