Fix and refactor ExpressionCodegen#pushClosureOnStack

- change Closure parameter to ClassDescriptor, load closure in the beginning
- invert and rename boolean parameter, also use it only to prevent pushing
  dispatch receiver (not the extension receiver) onto the stack because the
  only non-trivial usage of it is preceded by manual handling of the dispatch
  (not extension) receiver. This fixes innerOfLocalCaptureExtensionReceiver.kt
Don't put outer instance twice for anonymous object extending inner

 #KT-5343 In Progress
Pass correct outer instance in complex case of inheritance

 #KT-5343 Fixed
Uncomment previously failing code in J2K after fixing KT-5343
Add test for outdated smart cast with elvis issue

 #KT-5335 Obsolete
Regenerate tests
JS backend: increment counter for fresh names
JS inline: fixed bug with simple return inline function, when result is not used.

When function body can be expression
(contains only one statement, and it's return),
 result was saved to resultExpr, not body.

 But when result was not used, resultExpr was not
 used then.

 Fixed by checking, that result is used in first place.
Changed shortcuts for "Show expression type".

Using same shortcuts as in Scala.
Rearranged code in abstract incremental compilation test.
Added incremental cache format versioning.
JS backend: fix KT-6037 (default arguments in simple function with expression as body)

#KT-6037 Fixed
Check that boxing instruction is simple call

like T.valueOf(unboxType(T))

 #KT-6047 fixed
Fix KotlinEvaluateExpressionTestGenerated:testSimple
KotlinEvaluateExpressionTestGenerated:testSimple: add comment
Shorten References: Simplify shortening of qualified expressions
Shorten References: Extract common superclass for type- and expression-processing visitors
Use QUALIFIER info in JetFileReferenceResolver
JetFileReferenceResolver: Stabilize reference order
Add tests for obsolete "nested class is inaccessible"

 #KT-3535 Obsolete
 #KT-3647 Obsolete
 #KT-3731 Obsolete