Add support for stack frames.

Replaces local variable scopes with stack frames. This way we can later
add stack traces and proper error messages with filename and line number
tracking.
Bug fix: While loop parsing.

Just spotted a bug with `while` loop parsing where the expected
keyword is `if` instead of `while`.
Bug fix: Compound assignment parsing.

Fixes an issue in compound assignment parsing, where the operand was
omitted from it.
Merge pull request #91 from peelonet/stack-frames

Add support for stack frames.