improvements, constructors phase (2nd attempt)

These improvements make the compiler emit code that is both more compact and somewhat faster, too.

Supercedes https://github.com/scala/scala/pull/2409

review by @JamesIry or @gkossakowski or @retronym