BUG: Don't parse NaN as 'nan' in Data IO
Re-implementation of #20429, with a couple of changes:

* The `whatsnew` entry now has a separate section for this change (https://github.com/pandas-dev/pandas/pull/20429#discussion_r180160530)
* The fix is localized as much as possible to `parsers.py` and does not impact other functionality.

Closes #20377.