parse and modify AST for {} block

parser automatically insert return statement and statement block just
above the expression in the block
add tap() sample
allow newlines on edges of {...} block
do backtrack on failing to parse dictionary literal
add tests for {} block

some tests fail:

    Syntax error at line:13, col:18
    expected "end"

                foo bar { blah }
                    ^ here

it seems that parser parses it as object construction incorrectly in
above case.
Merge branch 'wip/oneline-block'
update task list