Fix for #1342: stack overflow in javac
Fix for #1327: compiler does not respect type parameter bounds

BoxingVisitor: detect generic method calls where the type arguments are going to be erased down to the
 type parameter bounds and mark the node as untrusted type (to be used in applyBoxingAndErasure)
ExpressionTransformer: when we build the list of type arguments, make sure we find the right bounds to
 erase to if required, and apply type arguments properly to the bounds. also refuse to erase to a single bound
 if there are more than one since we can't represent that in java.
 Also in getTypeForParameter do the same sort of calculation so that we pretend the parameter is of the type of
 the bound if we know it can't satisfy it in Java.
AbstractTransformer: in makeJavaType, replace type arguments with their bounds if the type argument does not
 satisfy the java bound or is erased, and generally apply the same logic as ExpressionTransformer.getTypeArgumentList
Updated tests .src due to #1327: respect bounds of type parameters
Updated test .src for #1327: we generally have more type arguments, and more correct, and some type casts that were either necessary or not harmful
Added test for #1327 in ErasureCasting because I want all that to be tested inthe same file
AbstractTransformer #1327: only accept the TP bound if covariant

Otherwise it's just not legal
ExpressionTransformer #1327: do not add casts twice for untrusted types
AbstractTransformer #1327: consider types that contain type parameters with non-erased bounds as erased
AbstractTransformer.makeTypeArgs #1327: do not produce raw types in extends/satisfies, even for type parameters with non-erased bounds
BoxingDeclarationVisitor #1327: mark TypedDeclarations with untrusted types and TypeParameters with non-erased bounds

They are not trusted if their type contains a type parameter with non-erased bounds
BoxingVisitor #1327: propagate info about untrusted types
model loader #1327: set TypedDeclaration.untrustedtype and TypeParameter.nonErasedbounds
Lazy model: do not lazy-load when not required
Updated tests .src with #1327: add lots of non-required casts due to type parameters with non-erased bounds

But, better too many casts that not enough and I didn't find how to remove them yet
Added test for #1327
Mirrors #1327: stop confusing wildcard bounds and type variables who have a type parameter
More test .src changes for #1327 after I recompiled the language module
Updated test .src that got fubared when I rebased for #1327
BcTests: updated test for latest binary version number