ENH: context-manager for chunksize/iterator-reader
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Allows (and encourages) the following use:
```py
import pandas as pd

filename = "pandas/tests/io/data/csv/iris.csv"
chunksize = 2
with pd.read_csv(filename, chunksize=chunksize) as reader:
    for chunk in reader:
        # risky code that might raise
```
Same can be done for `read_json/sas` (I think these are all methods that support `chunksize`). If this PR should make it into 1.2, I can quickly add the changes for json/sas as well.

Are there more places to promote this new context manager?
this looks pretty neat. can you add a small note section in io.rst which shows this off. i think this is ok for 1.2, can add json/sas as followsup. I don't understand why the documentation example is failing:

Exception in /home/runner/work/pandas/pandas/doc/source/user_guide/io.rst at block ending on line 1586
ParserError: Error tokenizing data. C error: out of memory

edit: the blank line was causing the issue, it was interpreted as the end of the `with`-block @jreback green. I hope the whatsnew entry is good now thanks @twoertwein very nice