Fix semi-colon bug. Make `and` parse as keyword.
There was a bug where `1 + 2` would parse without the semi-colon and where `1 + 2;` would fail to parse under certain situations. This was due to the fact that `parsingAsExpression` wasn't being reset to `false` during each call to `parse`.
For some weird reason I was parsing `and`, `or`, and `xor` as punctuators rather than keywords. That's been fixed now.