Patmat

@odersky this branch has a pattern matcher that passes test, that doesn't yet add outer checks and doesn't use switches.
Unfortunatelly typer dies on this branch on compiling the pattern matcher itself https://gist.github.com/DarkDimius/2e40747122e780e5755a

I'm starting to rebase it over #171 and will make a PR with all the changes and todo's.