First version of mixin transform.

Needs adaptations in getters/setters before it can be tested.
Adapt GettersSetters to new Mixin scheme.

Trait getters are no longer needed.
Avoid getting confused because of Scala2 local suffixes

When inheriting from Scala2 traits we sometimes encounter names with a space at the end,
denoting a local variable. Drop the space because our translation scheme has no room for it.
Improved version of mixin.

Now also handles all supercalls. Seems to do the right thing on pos/traits.scala.
But does not pass most tests because the sym transformer forces too many things.
New option -Ydebug-owners

Will print owners of symbols when displaying trees. Requires -Yprint-syms to be set also.
Make cloneScope less forcefull.

Motivation: Avoid needless forcing of symbols in scope. This is a problem when
cloneScope is called in TreeTransforms.
Fix problem in changeOwner

The problem manifests itself when changing the owner of a class field. Being a ValDef,
this is classified as a weak owner. But it's parent (the class) should not be owner-changed.
Adaptation of Constructors to new mixin scheme.

No more trait_setters are called.
Adaptation of explicitOuter to trait initializers

Trait initializers do not have outer params; need to avoid passing
outer args to them.

This problem did not manifest itself before because no trait constructor calls
were generated before erasure.
Take supercalls into account for statement context

After Mixin, super calls can appear in statemenr sequences. They need to be
typechecked and transformed using a special context.
Fixed redundancy in membersNeedAsSeenFrom

Array types are no longer used after erasure, so the test was redundant.
Fixed typing of supertypes.

Previous version could fail where the thisType widened to an explicit self type.
Fix of computeDenot.

Since we demand that after erasure all TermRefs are SymDenotations we need to
assure this when computing the denotations of term refs in new phases.
Select operations in erasure should fix symbols in types.

Otherwise we get binding races, e.g. for pos/t2133.scala after mixin
because we create same-named symbols in subclasses, and type refs now
can refer to the subclass symbol where previously they refereed to the
superclass symbol. To avoid a data race the new term ref will have a
fixed symbol.
Superaccessors are methods

Need to have Method flag set
Cleanup of code for ExplicitOuter
Methods always shwoDcl as `def`

This is reasonable because getters are only generated late in the
compilation pipeline. No need to hide a getter as a val in error messages.
Fixes to Unit handling in erasure

1. Erase unit results in getters to BoxedUnit.
2. Erase => Unit to ()Unit; was ()BoxedUnit
3. Make sure ValDefs have same type in tpt as in symbol, analogous to DefDefs.
More systematic handling of Scala2LocalSuffix.

Separate test instead of inline.
Accessor methods print as "method", not "val/var".