Semantic printing

When refined printing a DefTree, if one is after typer,
print the symbol's definition plus the rhs of the tree
rather than the contents of the tree.

Why: After typer, it's always the symbol's contents that should matter.

Question: Can we enforce through the types that parts of DefTree reflected
by the symbol disappear/are ignored?
Avoid forming SeqLiterals with singleton type element.

Singleton types are normally widened before inferring types, yet
they did show up as elements of SeqLiterals.
Fixes to TreeTypeMap

1) Avoid double transformation of a tree
2) Apply the type map to the type of the tree-mapped tree,
   instead of to the type of the original tree.
Fixes to ReTyper

1) Disabled insertApplyOrImplicit - it leads to untyped trees which cause
   assertion errors down the road. In any case, neither apply methods nor
   implicits can be inserted when retyping.

2) Avoid copying tree annotations into symbols when retyping.
Make ExtensionMethods not rely on TailRec

This acommit allows TailRec to run after ExtensionMethods. This is
due to the following changes:

1) Extension methods now "rewire" calls to other extension methods of the
   same class, so that they go directly to other extension methods
   instead of to the original method in the class.

2) Tailrec annotations get removed from original method and get
   added to the extension method instead.

With this commit all tests can be re-enabled again.