BUG: Patch handling of keep_default_na=False
Patches very buggy behavior of `keep_default_na=False` whenever `na_values` is a dict

* Respect `keep_default_na` for column that doesn't exist in `na_values` dictionary
* Don't crash / break when `na_value` is a scalar in the `na_values` dictionary.

In addition, clarifies documentation on the handling of the keep `keep_default_na` parameter with respect to `na_filter` and `na_values`.

Closes #19227.

cc @neilser