Added a simple repl

The repl only imports the prelude and does not store any state (previous evaluated lines are not stored)
Modified the Binding struct to allow for pattern guards
Modified the parseError construct in the grammar

Instead of passing in a function which checks for valid tokens we simply we do a call to next_end when a '}' is required. If another token is the current token we insert an '}' before the current token instead. This solution was derived from inspecting the HUGS source code.
Added typechecking for pattern guards
Translation of nested patterns into case expressions

This passes all current tests but is still a work in progress. The basic idea is to first pull out all nested patterns into a flat structure. After that we walk through this list and group all patterns together which matches the same thing and create an alternative which matches this and we generate more nested case expressions with the rest of those pattern lists that matches.