ProgramRewriter correctly wraps multiple statements where last is a heredoc
ProgramRewriter correctly wraps method definitions and return statements
ProgramRewriter: fix some bugs, do not record redo, break, retry, next
ProgramRewriter: don't record void value expressions
ProgramRewriter: Fix some edge cases with heredocs again *fucking heredocs*
ProgramRewroter: fix bug where blows up if there is nothing to wrap
Fix bug based on changes in comment.location return type

Based on my issue https://github.com/whitequark/parser/issues/96
Hack the new rewriter into place with passing cukes
Begin removing ExpressionList and getting specs passing