Move default inline flag to JVM back-end

- other back-ends are likely to have its own value of this flag
- get rid of DEFAULT_INLINE_FLAG_FOR_TEST
- the main goal was to simplify the default GenerationState constructor, which
  now always uses default inline flag value
Remove usages of CodegenBinding.initTrace

This is a low level JVM back-end detail; clients should be using
GenerationState instead
Make CodegenBinding.ASM_TYPE a collective slice

Change Type->JetFile mapping logic in PsiCodegenPredictor to be less hackish,
but probably the compiler will start requiring a little more memory due to a
collective slice multimap
Introduce ReflectionTypes, use it in JVM back-end

Make FunctionTypesUtil a component
Use ReflectionTypes instead of KotlinBuiltIns in type checker
Rename FunctionTypesUtil -> JvmFunctionImplTypes

It's not an util class anymore
Remove BindingTraceAware, TypeMapperAware, BindingContextAware

- delete suspicious caching logic from CodegenBinding.getAsmType(), which makes
  JetTypeMapper now depend only on BindingContext
- inline all of these classes into GenerationStateAware and the latter into
  JetTypeMapper
Simplify type mapping logic in CodegenBinding

- inline asmType to calling getAsmType, which does something more
- refactor getJvmInternalName to use getAsmType as well
- simplify getAsmType and fix a probable bug in mapping singletons nested in
  enums (which wasn't reproduced, though a test is added)
- delete unnnecessary ASM_TYPE recording for enum entries in
  CodegenAnnotatingVisitor
Make JvmFunctionImplTypes lazy

It shouldn't compute all FunctionImpls at least until first asked
Remove GenerationStateAware
Delete unused parameter in SamWrapperCodegen
Add missing copyrights