Correctly parse context-dependent-tokens after heredoc

If you had some ruby code after a heredoc, e.g.:

puts(<<ZOMG, 'this is a ' + 'bad idea', /no really it actually is terrible/)

Then the binary + and regex literal / might not have been parsed correctly
because we needed to keep track of what the last token that *would* have been
emitted, if the lexer was actually emiting tokens at this time. What the lexer
currently does is use a lexer that proxies the actual process until it sees an
end of line token, and it captures the tokens that would have been emited. Then
the lexing process can emit the string for the heredoc, emit all of the captured
tokens, and go back to lexing as normal.

Caught this because of a stray "__LINE__ + 1" as an argument to a call expression
in fileutils.rb that incidentally had a heredoc before it. Extremely thankful to
have had that context when I fixing this bug because ... wow.