Merge pull request #140 from dotty-staging/transform/extensionMethods

Transform/extension methods
Fixed #143

The problem was that TermRefWithSignatures did not take shadowed names into account
when reconstituting themselves under a new prefix.
Added test for #143 to regression tests
minor typo
delete unmatched )
Merge pull request #145 from dotty-staging/fix/#143

Fixed #143
Fixed typo
Merge pull request #146 from dotty-staging/docs/hk-typo-fix

Fixed typo
fix/148

Fixed typo in Splitter. Closes #148.
Merge pull request #149 from dotty-staging/fix/#148

fix/#148
Fix of FullParameterization

Avoid substitituting A.this if A is a globally accesisble mdoule.
Merge pull request #152 from dotty-staging/fux/substThis

Fix of FullParameterization
Allow FullParametrization to work on localy defined methods
Create RetypingTreeMap that propagates types

If some node in tree is transformed changing the type,
the outer node could potentially also change type.

This patch implements a RetypingTreeMap that propagates those
changes until types converge. Propagation is done for tree nodes
that are able to compute their type based on their children:
Pair, Block, If, Match, CaseDef, Try, SeqLiteral, Annotated, Select.
Fix typo in lazyVals
Add test for tailcall

Test for order of type parameters in recursive call
Make trees after TailRec type correct

TailRec now relies on FullParameterization and uses two passes
for transformation. First one decides weather the method will
be transformed and if yes, starts rewriting calls in taill position.

Second one lifts the method body to a fully parameterized one,
correcting types.
Move Ycheck after tailrec

Hurray!
Defined substitution which follows aliases

Used in FullParameterization to substitute type parameters.
Fixes test failure for t2399.scala
Fixed typo