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
++ force resolve
KT-1056 Don't allow passing type arguments to T

 #KT-1056 Fixed
Diagnostic tests are logging their lazy activity
++ Almost stable object ids + rendering for JetTypeImpl and primitives
++ Almost stable object ids
++ rendering for JetTypeImpl and primitives
++ testData
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
JS backend: test for toGenerator from stdlib
JS backend: compile some builtins to builtins.js instead of stdlib