Rework invalid abi version reporting

KotlinClassFileHeader is aware of older annotations
Psi is not used to report invalid Abi version in CLI
Create KotlinClassFileIndex
Introduce VirtualFileFinder interface

Provide different implementations in Cli and Ide
Use VirtualFileFinder in JavaClassResolver

HACK: determine whether fqname is a name for class contained in class or namespace based on virtual file name
This commit introduces code duplication which is hard to avoid without major refactoring
Use VirtualFileFinder in JavaNamespaceResolver
Use VirtualFileFinder in AnnotationDescriptorDeserializer
Restructure JetDecompiledData

JetDecompiledData now stores file text and uses descriptors serialized to String to find declarations
Use new JetDecompiledData to navigate to declarations in decompiled files
Add caching by project to decompiled data