only warn on unfinished strings; do eat less newlines

eating newlines is problematic because then it is not clear at
next_input_token() that the (next) token is at the beginning of a line.