Parse blocks with curly braces

... sort of. Found a strange bug in parsing where trailing whitespace on a
line will cause parsing to fail. Seems like it *should* work, based on the given
rules for matching a line, but maybe this is a shift / reduce conflict?