EA-43573 - assert: KotlinJavaFileStubProvider$.generate

The problem was that KotlinJavaFileStubProvider instances remembered information that changed between their invocation:
 e.g. when a package gets renamed the qualified name in a java file stub does not get updated
Compilation fixed
Do not fold imports if there is only one
 #KT-3410 Fixed
KT-3468 Kotlin can't understand compareTo was overridden in Java

Never using parameter names when serializing methods. They were added to external name if JDK sources were present and not added if JDK sources were absent.

 #KT-3468 fixed
Compacted serialized versions of methods and functions in JavaToKotlinMethodMapGenerated.
Rewrote nonLiteralFilenameFilter and filenameFilter tests without working with FS.
Removed filenameFilter test from excludes for AndroidTests.
Reformatting
Refactoring: use Computable in JS std library search
Refactoring: optimize imports
Refactoring: fix warning
Introduce project descriptor for testing js configuration
Refactoring: extract detecting platform functions to separate class
Make caching headers work for JS projects
Extract caching providers
Extracted method for creating injector.

Using delegating binding trace instead of original binding context.
KT-3469 AssertionError: Couldn't find super type for super function

Class descriptor for Java class was recreated in KotlinSignatureInJavaMarkerProvider.

 #KT-3469 fixed
Fixed compilation.
small refactoring

removed unnecessary variable
added annotation
try to use bounds in type inference
 if some parameters are unknown
KT-3459 "import java.util.*" is removed by optimize imports if the only usage is a SAM constructor

 #KT-3459 fixed