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