Report ABI version errors before diagnostics and other errors

Otherwise they're difficult to find in the end of the compiler messages
Fix JVM type mapping of arrays of type variables

 #KT-4262 Fixed
 #KT-5056 Fixed
Fix stdlib tests on JVM

 #KT-5064 Open
Eval4j: add invokePolicy flag to jdiEval
EvaluateExpression: pass invokePolicy flag to eval4j
KT-4868 Bug Fix for Swap Binary Expression Intention
SwapBinaryExpression: implementation cleaned up, tests renamed

 #KT-4868 Fixed
Fix file name case
Diagnostic update to support default parameters in inline methods
Code clean
Substitute Call with JetElement in InliningContext to support default inlining (there is no call)
Suppot inlining default methods, inlining function into its default.
Code clean
Move JvmMethodSignature to frontend.java
Signature comparison used to find super functions in SignaturesPropagationData

 #KT-4509 Fixed
Minor. More specific return type
Make JetSimpleNameExpression abstract, create subclasses for each element type

It's not a good practice to have one PSI class to correspond to several element types
Make JetReferenceExpression an interface
Rewrite JetSimpleNameExpression and inheritors to Kotlin
Make JetSimpleNameExpression a trait