Fixing memory leaks in read_csv
This PR fixes a memory leak in parsers.pyx detected by valgrind, and also adds some further cleanup that should avoid memory leaks on exceptions,

closes #21353

- Moved the allocation of na_hashset further down, closer to where it is used. Otherwise it will not be freed if `continue` is executed,
- Delete `na_hashset` if there is an exception,
- Also clean up the allocation inside `kset_from_list` before raising an exception.