Methods renamed to avoid ambiguity
VirtualFileFinder and KotlinClassFinder effectively merged (through inheritance)

This is needed to implement caching of KotlinJvmBinaryClass instance inside CliVirtualFileFinder that relies on reading class headers for filtering
Direct instantiations of VirtualFileKotlinClass are replaced by access to caching service
KotlinJvmBinaryClass now has a getClassHeader() method
All IDE code uses VirtualFileFinder instead of KotlinClassFinder + proper service discovery
KotlinClassHeader.read() removed
Concrete header classes replaced by kinds

AS a consequence, instanceof checks removed, code simplified
TODO added