ENH: Support passing compression args to gzip and bz2
This commit closes #33196 but takes a more generic approach than the suggested
solution. Instead of providing a 'fast' kwarg or global compression level
setting, this commit extends the ability to pass compression settings as a
dict to the gzip and bz2 compression methods. In this way, if the user
wants faster compression, they can pass
compression={'method': 'gzip', 'compresslevel'=1} rather than
just compression='gzip'.

Note: For the API to be consistent when passing  paths vs. filelikes, GZipFile and gzip2.open() must accept the same kwargs.

- [x] closes #33196
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

One question to consider: Instead of providing the ability to provide compression level args on a case-by case basis depending on protocol (originally just zip, now gzip and bz2 as well), would it be better to simply provide this ability to *all* zip protocols? I don't see anything in the code that prevents this--we would simply add `**compression_args` to each protocol's `open()` method or file constructor. Hello @jessefarnham! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:







There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2020-04-10 20:39:31 UTC @jessefarnham looks like there is a merge conflict - can you fix that up? > @jessefarnham looks like there is a merge conflict - can you fix that up?

Fixed @WillAyd Conflict resolved, but check seems to be failing because linting on master is currently broken Gotcha; should be fixed in #33461 so can re-merge after that gets into master > Gotcha; should be fixed in #33461 so can re-merge after that gets into master

All set, ready for merge to master. thanks @jessefarnham very nice!