Add Zip file functionality. Fixes #11413
closes #11413

This PR leverages Python's ZipFile functionality to automatically unzip files read into DataFrames using read_csv().

as an aside, would be interested in solving issues brought up in https://github.com/pydata/pandas/issues/11666 and partially addressed in #11677 (not merged)
 @jreback I would be happy to continue this to the other `read_*` functions. I like the idea of refactoring out the compression determination and the decompression steps, so that it can be used in all the `read_*` functions. I won't use the PR #11677 because it does not include tests or zip functionality. It also only focuses on `pickles`. 
 @jreback Could you merge this in and I'll take care of the other requests?
 @jreback could you please merge this before you make anymore changes to the tests. 
 you need to rebase then I'll review
 @jreback Rebased. Thanks.
 you need to force push. you should only have your commits. see [here](http://pandas.pydata.org/pandas-docs/stable/contributing.html#contributing-your-changes-to-pandas)
 @jreback I'm redoing this Pull Request. I will close this one and open a new PR.
 ok, in the future, just push to the same one
 Can the same functionality be added to read_fwf() and other read_\* methods?
 #11666 is related
#12688 is where this could be done, e.g. the code is a spread out a bit. welcome for you to take a crack at it @itzybitzy 
 IOW, the compression interfaces need to be pulled out a bit from the parser code
 Sorry @jreback, I just don't have the skills to do that (yet). Is there something good for a beginner to work on? Documentation maybe? (Not even sure where the right place to ask this is.)
 http://pandas.pydata.org/pandas-docs/stable/contributing.html

selects label of difficulty novice and you will see lots of issues
