(TODO diag) Create error type if reflection class isn't found

Inherit MissingDependencyErrorClass from ErrorClassDescriptor and reuse it in
ReflectionTypes
Introduce FunctionImpl and ExtensionFunctionImpl classes

Old FunctionImpl0,1,2,... will be dropped since they had no purpose
Drop FunctionImplN and ExtensionFunctionImplN

We have FunctionImpl and ExtensionFunctionImpl classes now (2 classes, not 46)
Fix generic signature for SAM adapters and constructors

SAM-related code in codegen was using JavaClassDescriptor directly, which has
an erased signature. Create and use a new abstraction SamType which has a full
generic signature of a type which was used in the SAM construct
Move and rename KFunctionImpl classes

Move from package "kotlin.reflect" to "kotlin.reflect.jvm.internal". They are
internal detail of the compiler and should not be used directly (especially now
that "kotlin.reflect" is in default import paths).

Also rename "KFunctionImplN" to "KFunctionNImpl", because this name makes more
sense