Support escaped CR and CRLF in strings

Support escaped CR and CRLF in strings.
Add new peek method to facilitate look-aheads.
A few questions about this:

1. Why do you need to see whether a `\n` is the next character? Is `\r` by itself not enough to ignore?

2. Why is this within the `if (ch === '\\')` block? Isn't this looking at carriage returns only after an escaped backslash? Why not put this further down, next to the regular `ch === '\n'` check?