Expect kern values on a line beneath their name

This introduces a slight but backward-incompatible change to the file
format by moving the kern values under a header of sorts. That's a
common pattern throughout the MIF actually, probably because it scales
well for all the different uses of the state table actions in AAT.
Fix the kern indices being off in some cases

Because of a naive calculation of the end-of-list markers, kern action
indices in the entry table were off if some of the lists were empty.
Fix the blank line tests

It appears that with the current state of affairs the only lines that
were read as blanks were the ones with no blanks whatsoever.
Make the blank-related code more consistent
Make the class parser straightforward
Make the parser's main loops clear and consistent
Strip off comments on the fly

It became apparent that this is necessary when thinking about line
number reports in error messages. Removing all the comments beforehand
makes line count being off, so this has to be done on each line read.
Skip blanks and comments within a class listing
Make each line read be stated explicitly
Follow a common idiom with all the line reads