`CsvParser.open` did not reset parser-specific state when reopening a
parser.
After parsing one input and reusing the same parser for another input,
the previous `row`, `headers`, and `processedRows()` value could remain
visible. In particular, calling `readHeaderRow()` on an empty second
input did not clear the previous headers.
Reset the parser state in `open`:
- clear `row`
- clear `headers`
- reset `currRow` to zero
Signed-off-by: cuishuang <imcusg@gmail.com>