Create a type for bindings
Parser failures now also include the consumed input

Also change the way <|> works: only try the second parser if the first one did
not consume any input.
Add `eve` executable which is a REPL that prints ASTs of input expressions