KT-5773 Smart cast doesn't work with Nothing on the rhs of "?:"
 #KT-5773 FIxed
Include additional IDE modules to "IDE" scope

- include modules "idea-analysis" and "ide-lazy-resolve"
- exclude all files starting from "idea" such as idea.properties, ideaSDK etc.
Delete "idea.properties"

Apparently it was committed by mistake and never used since then
Assert that reference annotation argument is always an enum value

Rename JavaReferenceAnnotationArgument on that occasion to
JavaEnumValueAnnotationArgument. Also add a test on a nested enum annotation
argument
Rewrite JavaAnnotationArgument interfaces and implementations to Kotlin
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)
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