parser: correctly convert infix expression to postfix.

The algorithm requires that when you hit an operator
you always pop at least one operator until you hit
something of lower precedence, not popping unless the
top is of lower precedence.

This list looks like it is still processed incorrectly
in binexpToExp.
parser: Fix the infix to postfix conversion.

Problem was two-fold: firstly, it was treating each
operator as having an individual precedence, leading
to oddities like subtraction always being performed
before addition and the like.

Secondly, when putting together binary expressions
that operate on binary expressions, it didn't consider
the associativity on determining where the child binop
should be placed.