Made LambdaLift capable of having minitransforms run after it.

Some changes needed so that Flatten can run after LambdaLift
New miniphase: Flatten
Generalize lift behavior between Flatten and LambdaLift

To be combinable with follow-up mini-phases the lift operation needs to handle Thickets specially.
This commit factors out the behavior from LambdaLift, so that Flatten can do the same thing.
New phase: RestoreScopes

Cleans up after LambdaLift and Flatten. RestoreScopes exhibited a problem (double definition)
when compiling Unpickler. The root of the problem was in Applications.scala. The effect was
that arguments woulkd be lifted out, but then the argument expression would be used anyway. That caused
a closure to be present twice which caused the double def error much later. -Ycheck did not catch it because
the two closure expressions were in non-overlapping scopes.
Bugfix for superaccessors

Threw away list of constructed statements.
New phase: PrivateToStatic

Make private methods in traits static, so that we do not need
to give a default for them.
Fixes to documentation.
Making print statement a debuglog
Merge pull request #207 from dotty-staging/transform/privateToStatic

Transform/private to static