fixes #12 -- implements block-allowed state as a stack to handle nested functions, functions in for-loop clauses, etc. many other bug fixes around block-allowed state. tests to come in another commit.
fixing more heuristics about new-lines, fixes #17
fixes #15 -- properly handles a 'case .. :' or 'default:' clause to switch on block-allowed state
fixes #16 -- now handles ES6's property-function shorthand syntax where a={foo(){ .. }} is shorthand for a={foo:function(){ ..}}
fixed bug with labeled statement at beginning of code
added tests for #15
re-fixing #17
tests for #17
added tests for #16
tests for #12