Fix bug with matchAsync line terminator peeking.

If the next token is 'async' but the current parsing index is separated
from the 'async' token by a line terminator (and possibly other whitespace
or comments), the previous usage of peekLineTerminator() would return
true, improperly causing matchAsync() to return false.

What we want to know is whether the 'async' token is followed by a line
terminator, so we need to fast-forward the lookahead temporarily to just
after the 'async' token, call peekLineTerminator(), and then rewind.