JetType.isNullable() is not accurate when the type denotes a type parameter:
a parameter can be not null (isNullable=false), but its upper bound can be
nullable (<T: Any?>), so null may appear in the value of such type. Therefore
it's preferred to use a special check (isNullableType()) in codegen from now on
Do not generate assertion for parameters of not-null types which have a
nullable upper bound + the same with Java method calls
Also fix Intrinsics class internal name in tests
#KT-3313 Fixed
Intrinsics.checkParameterIsNotNull() gets its caller's class and method names
from the stack trace to render them in an exception message.
Fix codegen tests because now it's now allowed to pass null to non-null
argument in tests
If a method comes from Java and is annotated as returning NotNull, after
calling it we should check if it actually returned something other than null.
Introduce checkReturnedValueIsNotNull() in jet/runtime/Intrinsics which does
exactly that.
CallableMethod's invoke() and invokeDefault() are now private, use asserted
versions instead