AbstractTransformer: fixed isCeylonBoolean code because it accepted Foo|Nothing as a Boolean type

And, well, that wasn't entirely correct. In fact it was a tad more wrong than it was rightish.
AbstractTransformer #1051: Reified `is`: optimise tests for `Foo<Anything>`
ExpressionTransformer: small optim for variance casts: ignore types with the same erasure

This way {Foo+} and {Foo*} don't need a variance cast anymore, because after all they erase
to the same exact thing, even in the type hierarchy
StatementTransformer: turned out that iterables needed proper boxing/erasure so we build the right expected type
TypeParameters.src: somehow this test slipped the reified generics update
Erasure test: updated to latest typechecker stricter checks
Updated tests to new stricter typechecker checks
Updated tests for #1051: Reified `is`: optimise tests for `Foo<Anything>`
Test for #1051: Reified `is`: optimise tests for `Foo<Anything>`
ErasureCasting.src: someone added type parameters to Sequential when erased?
Removed casts to Iterable due to optim in variance casts
updated .src with a few extra casts to Iterable due to correct impl of for boxing/erasure

These are not strictly necessary but they're a pain to remove