Refactor: drop redundant abstractions in IdeaModuleInfoTest
Split ModuleSourceInfo into ModuleProductionSourceInfo and ModuleTestSourceInfo
Introduce ModuleDescriptor#isFriend(ModuleDescriptor)

Use it to allow friend modules to see internal members
Make test source module a friend of production source module
Use different scope in completion/autoimport if element is in production source root
Debugger tests: do not print line numbers in stdlib
Minor, tests: rename test directive in debugger tests
Minor, fix warnings in KotlinClassFileIndex
Fix obscure typo in isEqual() in KotlinClassFileIndex
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