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
Fixed typo
fix/148

Fixed typo in Splitter. Closes #148.
Fix of FullParameterization

Avoid substitituting A.this if A is a globally accesisble mdoule.
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
Eliminate JavaRepeatedParamClass

Having two repeated param classes (and two types) does not work,
because we need to maintain an overriding relationship between
Scala repeated param methods and Java repeated param methods (this
will be resolved later by bridges).
Adapt signature of <repeated>

so that sig(<repeated>[T]) = sig(Seq[T]).
Add varargs bridge methods

Distinguish translations between Java and Scala varargs methods
and add bridges where needed.
Fixed tpd.ref

Did not work for this prefixes and other singleon types before.
I.d. was generating a SelectFromType tree, which is wrong.
Fixed underlyingIfRepeated.

... and moved to TypeApplications.
Cleanup for varargs bridge.

Now inserts a bridge whenever a method overrides a Java varargs method.
This is conservative but safe. We might use a more aggressive scheme, as
the one in Scala 2, but it's not clear the win would warrant it.
Added test case for varargs bridges

Currently we cannot run this test automatically because the testing framework
does not know about .java files. It was run manually and verified that ElimRepeated
does was it is supposed to do (create a varargs bridge).