Inner class constructors should use the argument instead of reading
outer `this` from a field because if such an access happens before a
delegating constructor call, e.g. when evaluating an argument, a JVM
bytecode validation error will be thrown. (The only operation on `this`
allowed before a delegating constructor call is SETFIELD, and only if
the field in question is declared in the same class.)
- 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