Unextend JavaAnnotationArgumentImpl from JavaElementImpl
Add KotlinClassFinder#findKotlinClass(ClassId)

Will be used to load nested classes correctly at runtime
Minor, delete unneeded underscores from parameter names
Straighten out MemberIndex calculation in LazyJavaStaticScope

Also delete confusing "inn" function
Make JavaClassFinder accept ClassId rather than FqName

ClassId has more information about the name which will be very useful when
implementing JavaClassFinder in reflection
Drop KotlinClassFinder#findKotlinClass(FqName)

findKotlinClass(ClassId) should be used instead
Minor, add NotNull annotations to VirtualFileKotlinClass
Extract abstract FileBasedKotlinClass out of VirtualFileKotlinClass

Add another implementation of FileBasedKotlinClass which was indirectly used in
jps-plugin (LocalFileKotlinClass)
Minor, refactor FileBasedKotlinClass factory method
Replace FqName by ClassId where possible in Java resolver
Read InnerClasses attribute value in FileBasedKotlinClass

Resolve names mentioned in class declarations based on this information
Use ClassId instead of JvmClassName in KotlinJvmBinaryClass

ClassId contains exact information about origin of the class (e.g. if '$' in
the class name denotes nested classes separator or just a character in the
name)
Minor, drop "toClassId" in DeserializerForDecompiler
Extract JavaConstructor out of JavaMethod

Will be useful in reflection-backed implementation of Java structure, where
Constructor is not a Method and doesn't even inherit from it
Remove superfluous isVararg() from JavaMethod
Minor, add NotNull annotations to test sources
Make MISSING_VAL_ON_ANNOTATION_PARAMETER error instead of warning

Annotation with a parameter that is not stored doesn't make any sense
Remove JavaClass.getAllMethods()/getAllFields()

Their behavior is different in PSI and reflection (two things that this
interface is supposed to unify), so there's no point in making it interface
methods, rather we should just walk supertype hierarchy manually

Also make JavaClassImpl.getSupertypes() invoke PsiClass.getSuperTypes(),
because it also contains java.lang.Object for interfaces, which makes
equals/hashCode/toString appear in interfaces' getAllMethods() as well
Minor, improve multi-module java analysis test

- don't check supertypes for every callable in a class
- don't check methods from Any
- check that all descriptors were correctly resolved (otherwise the test
  failure error message was very cryptic)