Replace some REFERENCE_TARGET calls with RESOLVED_CALL

Also don't do unnecessary and failing casts in CodegenAnnotatingVisitor for SAM
adapters

 #KT-3173 Fixed
 #KT-3999 Fixed
 #KT-4682 Fixed
Minor, get rid of ExpressionCodegen.asmTypeOrVoid()
Minor, add ExpressionCodegen.resolvedCall() utility

To obtain a resolved call by an expression with a non-null assertion
Minor, static import BindingContext.* in ExpressionCodegen
Misc refactorings in KotlinBuiltIns

- delete fields which were supposed to be used for caching, but mistakenly were
  never used
- delete/inline unused methods and constants
- delete useless logic related to root package fragment: package fragment
  providers are only supposed to find packages they're aware of
Move module 'serialization' to core/
Add missing copyrights across the project
Don't render stack trace in a warning

These stack traces are confusing: they make it seem as if an exception was
thrown
Add JVM prefix to CodegenUtil name to give way for backend-independent CodegenUtil
Extract data class generation logic into backend-independent module
Inline methods.
Supporting data class for JS backend
Minor in JS backend: added test for the overriding in data class.
Add a test for an obsolete issue
Delete "println" from production code in KotlinResolveCache
Don't use KFunctionN types in smart completion

FunctionN should be enough
Minor, rename accidentally named "context1" back to "context"
Init slice debug names for CodegenBinding
New Intention Action: Replace a call to forEach function with for loop.

Replaces an expression of form x.forEach { … } with for (a in x) { … }.
New Intention: Replace for loop with forEach

Replaces an expression of the form “for (i in list) { … }” with an
expression of the form “list.forEach { i -> … }”