Parser rewrite

* Literal handling
* LITERAL+ support (RFC 2088)
* Tighter whitespace parsing
* Better error messages