DIRTY: VirtualFileFinder in JavaClassResolver

HACK: determine whether fqname is a name for class contained in class or namespace based on virtual file name
DIRTY: VirtualFileFinder in JavaNamespaceResolver
DIRTY: VirtualFileFinder in AnnotationDescriptorDeserializer
FileViewProviderFactory and JetClsStubBuilderFactory
Use stubs in getParent for stubbed psi
Provide sources of depedency in AbstractJavaWithLibCompletionTest

Test compiles dependency before running
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
Change AbstractJavaWithLibCompletionTest so that it doesn't invoke compilation if dependency jar is already present
Rename directories containing dependency sources from *Sources to *Src
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
Fix default visibility for class object in eager and lazy resolve
Minor: fix misleading constructor parameter name in PsiJetPropertyStubImpl
Stubs for JetClassBody

This fixes some cases in getParent() behaved differently on stubs and ast
Restructure JetDecompiledData

JetDecompiledData now stores file text and uses descriptors serialized to String to find declarations