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!