Finally fix the '1+1' case. Fixes #36.

If parser is in a binary op, it now checks digit tokens to see if they started
with a sign. If they did, then it breaks them down into the appropriate binary
op and value.

So '1+1' is now seen as '1, +, 1' token-wise, instead of '1, +1'. The latter
caused messages about an unexpected token.

Added a small check to the sanity test, just in case.