Unclear error message when dealing with IntegerArrays
Since the recent addition of [Integer NA Support](http://pandas-docs.github.io/pandas-docs-travis/whatsnew/v0.24.0.html#optional-integer-na-support) writing IntegerArrays to disk is a common scenario. Below are two examples of `to_hdf` method, the first returns a confusing error message while the second is very clear. Could we raise a `TypeError` in the first case too?


#### reproduce:

```python
r = pd.Series( ['0','1', None, np.nan])
s = pd.to_numeric( r, downcast='integer').astype('Int64')
```

```python
s.to_hdf('file', 'df', mode='w', complevel=9)
```
#### `AttributeError:` 'NoneType' object has no attribute 'names'

```python
s.to_hdf('file', 'df', mode='w')
```
#### TypeError: objects of type ``IntegerArray`` are not supported in this context, sorry; supported objects are: NumPy array, record or scalar; homogeneous list or tuple, integer, float, complex or bytes





<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.6.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 142 Stepping 9, GenuineIntel
byteorder: little
LC_ALL: None
LANG: en
LOCALE: None.None

pandas: 0.24.2
pytest: 3.8.0
pip: 19.0.3
setuptools: 40.2.0
Cython: 0.28.5
numpy: 1.15.4
scipy: 1.1.0
pyarrow: 0.10.0
xarray: None
IPython: 6.5.0
sphinx: 1.8.5
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: 1.2.1
tables: 3.4.4
numexpr: 2.6.8
feather: 0.4.0
matplotlib: 2.2.3
openpyxl: 2.5.6
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.1.0
lxml.etree: 4.2.5
bs4: 4.6.3
html5lib: 1.0.1
sqlalchemy: 1.2.11
pymysql: None
psycopg2: 2.7.5 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: 0.10.0
pandas_datareader: None
gcsfs: None

</details>
