FileViewProviderFactory and JetClsStubBuilderFactory
Use stubs in getParent for stubbed psi
Remove usages of JetFile#getNamespaceHeader where getFqName is meant
Improve test that checks filtering for already imported package
Introduce TopLevelDeclarationIndexUtils, simplify code for completion and autoimports of top level functions and extension functions

Move and inline unrelated utilities in JetShortNamesCache
Stubs for top level object declarations, simplify completion
Do not try to adapt java completion as kotlin completion

Test that checks kotlin completion for java classes from libraries
Rename short name indices
Introduce JetFqNamedDeclaration, use it instead of JetNamedDeclaration where appropriate

Remove most of the usages of JetPsiUtil#getFqName(JetNamedDeclaration)
Use stubs to provide fqNames for Psi
Prevent toString() on JetPsi from mutating

Calling getNode() get cause switch to ast from stubs
Minor: fix misleading constructor parameter name in PsiJetPropertyStubImpl
Stubs for JetClassBody

This fixes some cases in getParent() behaved differently on stubs and ast
Fix logic in JetQuickDocumentationProvider
Stub builder for classes

Stubs for properties
Extract CompiledStubBuilderBase
Add TODO to DescriptorResolverUtils
Remove check from JetImportOptimizer
Get rid of JetNodeTypes#LOOP_PARAMETER
Remove useless getElementType overrides
Test for formatting loop parameter with explicit type
Fix not being to invoke "Specify type explicitly" intention when caret is to the right of loop parameter