BUG: properly close files opened by parsers
- [x] closes #13932 
- [x] tests passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Addresses all ~~most~~ of the `ResourceWarning`s from #13932. There were three tests that opened files but did not close them. The rest were due to parsers (`CParserWrapper` and `PythonParser`) opening files or streams but never closing them. There was one case &mdash; the `mmap` one &mdash; that was tricky because there was a file handle going into it and immediately reaching a refcount of zero.

I am at a loss about writing new tests for this. Is it even possible?
