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.
Updates to fix for issue #688

Added logic to look ahead at the second line and cache it when it
exists.  This eliminates the need for a new reader.  Changed the test
for the empty trailing header to use String.IsNullOrWhiteSpace instead
of checking for zero length.  Also eliminate the update to separators
since a new reader is no longer created.
Merge pull request #690 from mjsottile/master

Fix for issue #688