BUG: Fix compressed files in Py3 to return str

Fixed bug with reading compressed files in as `bytes` rather than
`str` in Python 3. `gzip` and `bz2` both now return `bytes` rather
than `str` in Python 3, so just needed to wrap them in an
`io.TextIOWrapper` to make everything work.

Only wrap BytesIO and compressed streams

Read entire compressed file in 3.2 to get around inconsistencies with TextIOWrapper
Merge pull request #4783 from jtratner/wrap-compressed-fileobjects-in-py3

BUG: Fix input bytes conversion in Py3 to return str