Replace call to unimplemented method runtimeCall

Use ref and appliedTo instead.
Facturing out EnclosingMethodTraverser from CapturedVars

The idea to traverse with currently enclosing methid is also used in
LambdaLift and could be used elsewhere.
Make enteredAfter, installAfter more forgiving as to when they are called.

Instead of requiring to be called a given phase, change the context if
that is not the case.
Add isProperlyContainedIn method
Fix lifting of application:

Lifting an application  `f(arg1).f(args)` requires lifting of the whole prefix
`f(arg1)`, because `f` might have a side effect.
Replace tree.withName with {tpd|untpd}.rename.tree

Advantage: Can rename typed as well as untyped trees.
Take receiver into account when selecting default getters.

Previously, we determined the default getters solely from the method TermRef type.
This is wrong if the method is prefix is not a path -- the prefix of the term ref will be a
TypeRef and the getter selection will be a SelectFromType tree, which makes no sense.
Treat @static as a source flag.

It changes meaning drastically so should always be visible.
Allow relaxed typing of applications

Some transformations encounter applications where new arguments ahve to be
supplied. The method type already accounts for these argument but the
Application node passed into TreeTransform#transformApply is constructed
with a cpy.Apply operation which does a type assignment. That type assignment
fails with a parameter mismatch unless relaxedTyping is on.