Transform/constructors

Constructor phase.

The first 10 commits or so are really in preparation of LambdaLift, which will be the phase after Constructors.
Constructors was moved before LambdaLift because the lambda lift logic becomes simpler if it can assume that
parameter accessors have already been converted to parameters in super calls. Without this it is very hard to get lambda lift for super calls right. Witness the implementation restrictions to this effect in scalac.

Review by @DarkDimius @gzm0