Inter-field dependencies fixed for fields used as context

The problem was that when GivenExpression was used to initialize a feld, the generator did not know that there's
a dependency on the receiver of the call inside the expression, so it could place the call before the initialization of the receiver,
 which caused a compilation error. Now dependencies are tracked explicitly
TypeResolver converted to Kotlin
Abstract lazy type moved to descriptors
Resolution of type constructors in TypeResolver is now lazy (for types in declarations)
LazinessTokens introduced to enable/disable building lazy types
Additional/forced resolve for lazy types
KT-1056 Don't allow passing type arguments to T

 #KT-1056 Fixed
Diagnostic tests are logging their lazy activity
Make candidate resolver force-resolve type arguments on argument count mismatch
Do not annotate Kotlin members returning platform types as @Nullable

This leads to pointless warning in Java code
Base class for multi-file tests extracted
KT-6178 False "Overriden methods are not annotated" when using delegation
 #KT-6178 Fixed
Minor. Formatting
Actually create .kt files in the file system for Kotlin multifile tests
Extract SAM constructor resolution logic to a component
Minor, merge two sematically identical functions
Move SAM adapter resolution logic to SamConversionResolver
Minor, make SamAdapterFunctionDescriptor create itself for fake overrides
Move SAM function type calculation to SamConversionResolver
Move SAM resolution to frontend.java