Routines for tracking line and column numbers as we iterate through a string.
Keeping track of the line and column number is practically important for producing good error messages. The routines here are rather specialized, and are mainly designed for use within our input stream mechanism.
The normal convention used by, e.g., text editors like EMACS, is to show line numbers starting at 1. We adopt this convention in the interface to our input streams.
However, internally we treat line numbers as starting at 0. This This has the good property that the line number never exceeds our current character position in the file. As a result, restricting ourselves to fixnum positions automatically gives us fixnum line (and column) numbers.