ENH: add gzip/bz2 compression to relevant read_* methods
This issue is a branch off of #11666, which implemented compression support for `read_pickle`. There are still a few other `read_*` methods that could possibly benefit from compression support. Looking at [the I/O API reference](http://pandas.pydata.org/pandas-docs/stable/api.html#input-output), this jump out at me:

* [`read_json`](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html#pandas.read_json) - This can definitely benefit from compression. I've stored very large gzipped JSON files before. As a general rule, any `read_*` method that supports any kind of plaintext format should support compression.
* [`read_stata`](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_stata.html#pandas.read_stata)~~- I don't use Stata, but it looks like a .dta file is not a plaintext file. Is it naturally compressed, or can they be compressed significantly like pickles?~~
* [`read_sas`](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sas.html#pandas.read_sas) - I've also never used SAS, and like Stata's .dta files, it looks like .xpt and .sas7bdat files are both some binary format. Can they be compressed well?