parser - always begin/end a row even if blank

It wasn't doing this in the presence of DOS CRLF
writer - allow caller to specify number of expected columns

So it will write out the correct number of commas for every row, even if
the cells are blank or the row is ended early.