Make intrinsic method always generate value of expected type on stack

IntrinsicMethod.generate()'s return value is 'StackValue.onStack(returnType)'
and will be dropped
Drop return value of IntrinsicMethod.generate()

It's always "StackValue.onStack(returnType)"
Minor, extract method
Simplify function invocation in ExpressionCodegen

Callee is now generated only when it could be non-trivial, which is only the
case when generating function call in invokeFunction()
Refactor ExpressionCodegen.invokeFunction() once again

Extract and reuse return type mapping between normal callable methods and
intrinsics
1