Test for formatting loop parameter with explicit type
Get rid of JetNodeTypes#LOOP_PARAMETER
Refactor: remove redundant getElementType overrides is PSI
Minor: fix misleading parameter name
Refactor: rename short name indices
Prevent toString for PSI from mutating
Add getFqName() to JetNamedDeclaration interface

Use stubs to get fq name in stubbed implementations
Use of getFqName instead of JetPsiUtils
Stubs for JetClassBody
Refactor: fix stubs and psi having redundant constructor parameters
Refactor: use generated approach for stubs test

Remove meaningless assertion
Add comment to NotStorePropertyFromDelegate test
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