Get rid of Substitution.

Substitution was creating more problems than solving.
Instead the symbols in tree aren't rewriten anymore,
and pattern matcher collects Rebindings and generates ValDefs
for them just before the guard & body of the generated case.
Quickfix patmat not handling Bind(_, Typed(_: Unapply))

Typer creates a tree that given current decoding scheme means
case a @ (Assign(Ident(id), rhs) : tpt)
Which isn't valid scala.