Massive parser overhaul

* Add GroupExpr to track parenthesized expressions in case we ever want
  to do reassociation properly
* Rename Negate to LogNot, and add Negate (-) and BitNot (~) unary
  operators
* Rename most functions on StreamParser to make naming more consistent
* Refactor the bigger functions in StreamParser
* Completely overhaul the operator table mechanism for binop parsing
* Make comparison operators non-associative