Fixes erasure of super

 - supertype components needs to be recursively erased

Without this fix, some files do not pass -Ycheck:lambdaLift
Strenghten postCondition of firstTransform

All tests pass, but good to have the condition in there.
Initialize lambda lift maps

... so that they do not spill over between compilation units. It would be better to wipe the maps after
processing a compilation unit, but right now we do not have a hook for that. A better solution should
be possible once we replace init by "prepareUnit/transformUnit".
Replace some idents by selects in LambdaLift

If a symbol becomes a class field, references to it need to be selections, or
else we get a "bad type" assertion violation in TreeChecker.
Almost all tests pass -Ycheck:lambdLift

Only exception: dotc/transform. This seems to be for two reasons:
1) The call-by-name functions used in Decorator#foldRightBN cannot be translated correctly
at their use points.
2) An anonymous function in Constructors are not correctly lifted.

2) could be related to missing/duplicated symbols in pattern matcher. I'll follow up with a commit
that points these out.
Add missing and double symbol checking to TreeChecker

TreeChecker now tests that a symbol does not have two definitions that define it,
and that every reference to a symbol owner by a term is in the scope of a definition
of that symbol.

Both tests fail on several files for pattern matcher.