Fix #167

Can handle now vararg arguments in patterns.
Merge pull request #168 from dotty-staging/fix/#167

Fix #167
Merge branch 'reb' of https://github.com/dotty-staging/dotty into reb
WIP
Make changeOwner more robust regarding non-standard owner chains

The problem is running changeOwner(from, to) where

 - from is a ValDef or a Label
 - an embedded definition has as owner not `from` but some
   owner of `from`.

We allow such denomrlaized owners and the pattern matcher generates
them. This patch makes changeOwner take these situations into account.
Make rejection of deep subtype call stack optional

Move flag that throws exception on deep subtyping stacks from Config varianble to setting.
Disable setting for core-pickling which had a deep subtype failure after pattern matcher
was integrated. Todo: Figure out why the subtype stack got so deep.
Make productArity a synthetic method which can be overridden

Like other synthetic methods, productArity will not be generated
if an explicit definition is given. Used to be generated unconditionally
in desugaring.
Merge branch 'reb' of https://github.com/dotty-staging/dotty into reb
Merge branch 'reb' of github.com:dotty-staging/dotty into reb
Make SubstOnlyTreeMaker maintain type-safety.

Implementation of pattern
sel match {
 x => <body>
}
used to replace references to x by references to sel in <body>.
This is not type correct and it also requires additional traversal of
body.
Now SubstOnlyTreeMaker generates a `x = sel` statement.
More better handling of typeTests in patmat.

Now reuse symbols from typer. Less substitutions -> better performance.
Bring back test removed between merges.
Setters are not case accessors
Porting lazy vals to a new scheme.
Merge branch 'reb' of github.com:dotty-staging/dotty into reb
Fixing owner releated error in lazy vals.

When lazy val body is moved to a init method the owner of symbols in
tree should change
Enabling lazy vals.

Unit tests still to-be-fixed
Enable all tests
Fixed assertion to enfornce idempotency of substitutions
Fixed needs outer test