Previously checked the whole line for the separator after each character
read. The new version instead just checks whether the line read so far
ends with the separator.
Note that the current version of ByteList#startsWith/endsWith assumes
the index and byte list arguments are valid, which means we must not
call the method before the line is long enough.