ClassTransformer: fix #1376 by not adding model type parameter for the outer type's type params
Test for #1376 and updated test .src
metamodel interop runtime test: fixed code now that getMethod does check the type arguments properly
ClassDefinitionBuilder: force a @TypeParameters annotation to be emitted if the type param model info differs from the type param count #1376

So that inner interfaces with no type parameters contained in a type which has type parameters will have an empty
@TypeParameters annotation, otherwise it would not and the model loader would use the underlying class type
parameters, which contains the outer type parmaeters so the count would be wrong
Further test for #1376
ExpressionTransformer: added EXPR_WANTS_COMPANION to the erasure/boxing flags #1378

So we can generate casts to the impl accessor if required
ClassTransformer #1378: add a cast to the impl accessor if required
ExpressionTransformer: dodge NPE
ExpressionTransformer: extracted the code that adds a variance cast

Handle the new EXPR_WANTS_ACCESSOR flag and just pass the erasure/boxing flag
along rather than boolean parameters
ExpressionTransformer: merge fix for #993 and fix for qualifier this in comprehensions

We now also add a qualifier this and cast it if we require a variance cast
Test for #993: refined variance inheritance for base members
ClassTransformer: fixed a call to makeDelegateToCompanion where the produced type container and current type were just wrong

apparently if we're delegating to the cls container interface we need the current type to be set
to the cls container, and the produced reference qualifying type could not be set to the cls
container because the parameter is not contained in the container but in the cls itself
Updated test .src now that we qualify auto-this for base members inside comprehension