Fix parsing of advanced block statements
Parsing of advanced uses of loop, with and control no longer throws an
error. Props to @s-m for finding this. Also fixes a bug where "<" would be
interpreted as a bad character. Typing "{" should now consistently yield
"{$}" as well.