Added methods to prepare-for and transform a complete compilation unit tree.

Should replace destructive inits.
Replaced overridden init methods with prepareForUnit.

This allows to move to a functional implementation later.
Only exception: CapturedVars still uses init() because it
contains a (dubious!) interaction with intialization and
transformSym. Looking at this next.
Make CaptguredVars use prepareForUnit instead of init.

Required some refactoring. Instead of transformSym we now
transform ValDefs as we prepare for them. The previous scheme
could not control directly whetrher transformSym or collectCaptured would
run first. Turns out that init ran before collectCaptured but
prepareForUnit did not, leading to test failures in pos/capturedvars.
Remove init method from TreeTransform

Do not lead to temptation...
Make CapturedVars a functional transform.

No global side effect on capturedVars anymore.
Eliminate global state in LambdaLift

State moved into local transforms which are allocated one per unit.
Thsi allows lambda lifters on different units to run in parallel.
Merge pull request #224 from dotty-staging/refactor/treeTransformInits

Refactor/tree transform inits