PERF: ascii c string functions
- [x] closes #23516
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

This ends up being kind of hairy - open to suggestions on a better fix.  cc @dragoljub, @cgohlke 

Timings

```python
df = pd.DataFrame(np.random.randn(1000000, 10), 
    columns=('COL{}'.format(i) for i in range(10)))
df.to_csv('~/tmp.csv')

# python 3.6 - pandas 0.23.4
In [1]: %timeit pd.read_csv('~/tmp.csv')
4.55 s ± 344 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# python 3.7 - before
In [3]: %timeit pd.read_csv('~/tmp.csv')
21.8 s ± 769 ms per loop (mean ± std. dev. of 7 runs, 1 loop ea

# python 3.7 - after
In [1]: %timeit pd.read_csv('~/tmp.csv')
4.25 s ± 168 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
```