constructors phase refactoring for readability (with speed also in mind)


The constructors phase has grown over time, with sub-transformations being added to the all-encompassing `transformClassTemplate()` on an as-needed basis.

This PR breaks that method apart, encapsulating each sub-transformation in a trait dedicated to it. Documentation has been thrown in, too.

The whole effort was motivated by an idea to achieve lower heap retention,
  https://groups.google.com/forum/#!topic/scala-internals/jQiRINTvhZQ
whose implementation will be more approacheble once the constructors phase is more approachable. Thus this PR.

review by (it's been a while) @paulp