Implement stub based package declaration provider for lazy resolve

Implement StubPackageMemberDeclarationProvider
Introduce DeclarationProviderFactoryService to provide difference factories in CLI and Plugin
When indexing treat top level declarations without name specially so that they can be found in index
Implement PluginDeclarationProviderFactoryService which uses file based approach for non indexed files and stub based for others
Stubs tests: treat NO_NAME_FOR_LAZY_RESOLVE specially
Minor: fix misleading method name
Refactor: extract duplicated logic to util class

Introduce PackageIndexUtil
Minor: remove unused method
Delete JetStubResolveTest

This test does not seem meaningful anymore
Since DeclarationProvider based on stubs is used in IDE, it is covered by a vast number of tests(anything that uses lazy resolve)
Use instance methods instead of JetPsiUtil for getting fq names

Remove unnecessary usages of JetFile#getPackageDirective where only FqName is needed
Make JetFile#getPackageFqName not nullable to avoid confusion on call sites
Remove getPackageName usages
Move getFqName(JetNamedDeclaration) to a separate util class
Minor: remove redundant toString override
Stub tests: test for parameters with fq name
Increase stub version before pushing into master