Add #ids for This trees and ClassDefs

if uniqid is set, print them with their unique ids.
Three fixes to substSym

(1) Also handle This types - we need to be able to substitute the class symbol there.
(2) Keep NonMemberSym property when substituting
(3) In p.T, substitute in `p` even if `T` is replaced by substitution.
Fix to isAnonymousClass
Add pathTo method for Positioned.

This is not yet needed but will probably come in handy later.
Make local dummy a non-member type.

Local dummys in templates are not members of their enclosing classes.
Fixing handling of self in DeepTypeMap#mapClassInfo

The previous version used `self` which referred to the `val` in
the implicit TypeOps value class (duh!). We really should make value
classes not require to have public fields.
Extend owner checking in TreeChecker

Now also checks owners of primary constructors and template local dummys.
Fixed re-tpying of Return nodes.

Need to honor `from` if it exists, instead of searching for enclosing method.
Code motion might move the code under a different method.
Fixes to TreeTypeMap

(1) Template nodes have to be treated specially. They contain
    primary constructors, self definitions and local dummys,
    all of which have to be properly mapped and re-integrated.
(2) Symbol substitutions have ot be done all together instead of
    one after the other.
(3) When creating new symbols, need to create ClassSymbols for ClassSymbols.
Make ElimByName change owners of by-name parameters

By-name parameters did not have their owner changed before.
This was not noticed in treecheck because the method generated
for the closure did not have its Method flag set by accident, so
owmer checking ignored the new val. Once the Methgod flag was set,
owner checking failed. Once changeOwner was added, a whole lot
of other things failed, which led to the fixes in the previous commits.
Refactored TreeTypeMap

Goes into a separate source files. Several simplifying refactorings.