Fix operator precedence in expression AST

Expression parsing had subtle bugs that prevented operator precedence rules (a.k.a. order of operations) from working as intended when creating the AST.  As far as I know, this wasn't detectable from using Ractive, since expressions are stringified in a way that assumes the structure of the AST already follows operator precedence and doesn't insert parentheses.  However, the mis-parsing is evident from looking at the result of `getExpression`.

It might be worth reviewing all code sites where the parser invokes the top-level `getExpression` to make sure it doesn't consume too big an expression as it did in these cases.