Completion fails with exception "Toplevel class has no fqName" (KT-5119)

Groovy scripts files can create PsiClasses with null qualfied names (getQualifiedName()) and names (getName()).

 #KT-5119 Fixed
Fix "rewrite at slice" problems with resolving same Java class many times over the same trace
When checking overrides, compare methods structurally

Because they may come from different copies of the same class from different modules
Minor. If's with the same condition merged
Using strategy instead of BiMap
Minor. Methods reordered
OverridingUtil turned into a singleton
OverridingUtil parameterized with equalityAxioms
Do not compare local classes by FqNames
Checking return value supported in OverridingUtil
Overridability and overloadability checks separated
Support equalityAxioms in isSubtypeOf()
Compare return types when structurally comparing callables
fix DSL in Android plugin
Java to Kotlin convertor: making code more "Kolin-like" + numerous micro refactorings
Java to Kotlin convertor: improving code related to primary constructors
Java to Kotlin convertor: more code improvements
Java to Kotlin convertor: generating of val/var constructor parameters when possible
Java to Kotlin convertor: no empty class body
Generating test output when file is missing: removing trailing whitespaces