Fix for issue #688

Added a fix for issue #688 in which a header has a spurious empty
trailing column that doesn't appear in the following rows.  If a header
is present and the final header column has zero length, the next row is
checked.  If it has one less column than the header, the extra empty
header column is treated as spurious and removed.  Otherwise, the column
is retained.  Two added tests: one for the case where the empty trailing
header column is spurious and should be ignored, and one case where it
is legitimate and should not be ignored.
Probably is best to use String.IsNullOrWhiteSpace in case it has a space after the comma