Expression parsing improvements and fixes

a2c_Expression() is now much more similar to a2c_SimplExp();
it accepts -1 for 'r' for allocating a temporary register if
needed, and returns with the result as the current token. It
also avoids allocating a temporary register altogether when
possible.

NOTR instruction ('not' boolean operator) now actually
recognized by the parser...

Fixes the "unnecessary temporary register" issue introduced
when #66 was fixed.