BUG: Parse NULL char as null value
Fixes bug in C parser in which the `NULL` character (`'\x00'`) was being interpreted as a true line terminator, escape character, or comment character because it was used to indicate that a user had not specified these values. As a result, if the data contains this value, it was being incorrectly parsed. It should be parsed as `NULL`.

Closes #14012.

Points of clarification to make here:

1) The reason why we still default `lineterminator` to `'\0'` instead of say `'\n'` is to allow for proper carriage character (`'\r'`) detection, as can be seen <a href="https://github.com/pydata/pandas/blob/5d791cc7d955c0b074ad602eb03fa32bd3e17503/pandas/src/parser/tokenizer.c#L693">here</a>.

2) The test I added will fail if it weren't any of the modified `lineterminator`, `escapechar`, or `commentchar` checks.  They all used to compare against `'\0'` if none was specified, causing that stray `'\x00'` character to be incorrectly parsed in some way, shape, or form.
 ## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/14019?src=pr) is 85.29% (diff: 100%)

> Merging [#14019](https://codecov.io/gh/pydata/pandas/pull/14019?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will not change coverage

``` diff
@@             master     #14019   diff @@
==========================================
  Files           139        139          
  Lines         50241      50241          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
  Hits          42851      42851          
  Misses         7390       7390          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [5d791cc...5d39744](https://codecov.io/gh/pydata/pandas/compare/5d791cc7d955c0b074ad602eb03fa32bd3e17503...5d39744ef0cbc9db4e0d6c2c712eda2fe81482aa?src=pr)
 thanks!
