Initial PEG parser for Cypher
Update parboiled to 1.1.5

Fixes memoMismatches issues
Add syntax check error handling
Adjust package layout
Use monadic style for semantic checks
State in SemanticState rather than SymbolTable
Rename SymbolTable to SemanticState
Semantic check after WITH
Change some Seq to Vector
Record pass number in SemanticState
Run multiple semanticCheck passes
Replace -> with >>= in semantic check
Use abstract classes for pattern base classes
Capture all possible identifier types

And do reducution inferrence
Use contravarient inferrence for indentifiers
Adds experimental StateWithErrors monad
Introduces STErr monad

o STErr is over state, errors, and contained value
o join
o lifting of helper functions
o supports for-comprehensions
o some haskell-style operators
Refactors STErr to use errors as only contained state

o Removes STErrState in favour of (errors, value) tuples
o Adds addErrors
o Discards previusly used extra (state: S)
o Renames return to init, moves lift to STErr
Changes STErr monad to not take accumulated errors as input

o STErr is not a case class anymore
o Fixes bug where errors where not properly passed on