Function read_fwf doesn't work well with hdfs3
#### Code Sample, a copy-pastable example if possible

```python
from hdfs3 import HDFileSystem
import pandas as pd

client = HDFileSystem("my_hdfs_address")
with client.open("/path/to/my/file/on/hdfs") as fh:
    data = pd.read_fwf(fh)
```

File:

```
aas aas aas
bba bab b a
```

#### Problem description

Raises:

```
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-22-29b10003b7dc> in <module>()
      1 with client.open("/path/to/my/file/on/hdfs") as fh:
----> 2     data = pd.read_fwf(fh)

/disk1/home/_/.Anaconda3/lib/python3.6/site-packages/pandas/io/parsers.py in read_fwf(filepath_or_buffer, colspecs, widths, **kwds)
    685     kwds['colspecs'] = colspecs
    686     kwds['engine'] = 'python-fwf'
--> 687     return _read(filepath_or_buffer, kwds)
    688 
    689 

/disk1/home/_/.Anaconda3/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
    403 
    404     # Create the parser.
--> 405     parser = TextFileReader(filepath_or_buffer, **kwds)
    406 
    407     if chunksize or iterator:

/disk1/home/_/.Anaconda3/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
    756 
    757         # might mutate self.engine
--> 758         self.engine = self._check_file_or_buffer(f, engine)
    759         self.options, self.engine = self._clean_options(options, engine)
    760 

/disk1/home/_/.Anaconda3/lib/python3.6/site-packages/pandas/io/parsers.py in _check_file_or_buffer(self, f, engine)
    817                 msg = ("The 'python' engine cannot iterate "
    818                        "through this file buffer.")
--> 819                 raise ValueError(msg)
    820 
    821         return engine

ValueError: The 'python' engine cannot iterate through this file buffer.
```


Loading data from hdfs using pandas and hdfs3 works fine with `read_csv`. However, `read_fwf` don't work at all. This seems to be a problem with the way `read_fwf` handles the file buffer, not with the particular contents of the file.

#### Expected Output

The data is loaded correctly

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.2.final.0
python-bits: 64
OS: Linux
OS-release: 3.10.0-693.1.1.el7.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.20.3
pytest: 3.2.1
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.26
numpy: 1.12.1
scipy: 0.19.1
xarray: None
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.2
feather: None
matplotlib: 2.0.2
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 0.9.8
lxml: 3.8.0
bs4: 4.6.0
html5lib: 0.9999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: 2.7.3 (dt dec pq3 ext lo64)
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None
</details>
