Remove suspicious JetTypeImpl constructors

Most of the time they were used for classes without type parameters, and
getDefaultType() is supposed to be used there (additionally it may be cached)
Introduce AbstractTypeParameterDescriptor

- pull the logic up from TypeParameterDescriptorImpl and
  AbstractLazyTypeParameterDescriptor (it was mostly duplicated)
- delete some unused methods
Fix AbstractLazyTypeParameterDescriptor.getDefaultType()

Pull up to AbstractTypeParameterDescriptor and adopt additional 'isNullable'
logic which was present in TypeParameterDescriptorImpl
Replace some usages of ERROR_CLASS with new instance creation

Because when some class is unresolved, we can still hold some information such
as its FQ name, for debugging purposes and better error messages
Introduce KFunctionImpl, KMemberFunctionImpl, KExtensionFunctionImpl

Old 23*3 classes will be dropped, since they have no value.

Simplify JvmFunctionImplTypes significantly because of that
Delete K*FunctionNImpl classes

In favor of KFunctionImpl, KMemberFunctionImpl and KExtensionFunctionImpl
Increase ABI version after changes to FunctionImpl* classes