Cannot serialize objects with IntervalIndex using msgpack
#### Code Sample, a copy-pastable example if possible
From 
```python
import numpy as np
import pandas as pd
ser = pd.Series(np.arange(10), pd.interval_range(0, periods=10))
ser.to_msgpack('C:/temp/blah.mpk')

-->
TypeError                                 Traceback (most recent call last)
<ipython-input-8-0da7c2fd5b28> in <module>()
----> 1 pd.Series(np.arange(10), pd.interval_range(0, periods=10)).to_msgpack('C:/temp/blah.mpk')

C:\projects\pandas-dk\pandas\core\generic.py in to_msgpack(self, path_or_buf, encoding, **kwargs)
   1860         from pandas.io import packers
   1861         return packers.to_msgpack(path_or_buf, self, encoding=encoding,
-> 1862                                   **kwargs)
   1863
   1864     def to_sql(self, name, con, schema=None, if_exists='fail', index=True,

C:\projects\pandas-dk\pandas\io\packers.py in to_msgpack(path_or_buf, *args, **kwargs)
    152     if isinstance(path_or_buf, compat.string_types):
    153         with open(path_or_buf, mode) as fh:
--> 154             writer(fh)
    155     elif path_or_buf is None:
    156         buf = compat.BytesIO()

C:\projects\pandas-dk\pandas\io\packers.py in writer(fh)
    147     def writer(fh):
    148         for a in args:
--> 149             fh.write(pack(a, **kwargs))
    150
    151     path_or_buf = _stringify_path(path_or_buf)

C:\projects\pandas-dk\pandas\io\packers.py in pack(o, default, encoding, unicode_errors, use_single_float, autoreset, use_bin_type)
    700                   use_single_float=use_single_float,
    701                   autoreset=autoreset,
--> 702                   use_bin_type=use_bin_type).pack(o)
    703
    704

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer.pack()
    229             return ret
    230
--> 231     cpdef pack(self, object obj):
    232         cdef int ret
    233         ret = self._pack(obj, DEFAULT_RECURSE_LIMIT)

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer.pack()
    231     cpdef pack(self, object obj):
    232         cdef int ret
--> 233         ret = self._pack(obj, DEFAULT_RECURSE_LIMIT)
    234         if ret == -1:
    235             raise MemoryError

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer._pack()
    190                         ret = self._pack(k, nest_limit - 1)
    191                         if ret != 0: break
--> 192                         ret = self._pack(v, nest_limit - 1)
    193                         if ret != 0: break
    194             elif PyDict_Check(o):

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer._pack()
    190                         ret = self._pack(k, nest_limit - 1)
    191                         if ret != 0: break
--> 192                         ret = self._pack(v, nest_limit - 1)
    193                         if ret != 0: break
    194             elif PyDict_Check(o):

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer._pack()
    219                 if ret == 0:
    220                     for v in o:
--> 221                         ret = self._pack(v, nest_limit - 1)
    222                         if ret != 0: break
    223             elif not default_used and self._default:

C:\projects\pandas-dk\pandas\io\msgpack\_packer.pyx in pandas.io.msgpack._packer.Packer._pack()
    226                 continue
    227             else:
--> 228                 raise TypeError("can't serialize {thing!r}".format(thing=o))
    229             return ret
    230

TypeError: can't serialize Interval(0, 1, closed='right')
```
#### Problem description
Msgpack cannot serialize currently objects which have IntervalIndex. I am not sure if this is related in any way to #13463; there the issue was just serialization of a "Period", but PeriodIndex works. Here in the context of trying to serialize IntervalIndex it appears it's actually trying to serialize the Interval object.

#### Expected Output
Successful serialization without error.

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

<details>

INSTALLED VERSIONS
------------------
commit: e3b87c1843ef1a2375faff737701a13ee96f4879
python: 3.6.4.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 62 Stepping 4, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.0.dev0+422.ge3b87c1
pytest: 3.3.2
pip: 9.0.1
setuptools: 38.4.0
Cython: 0.27.3
numpy: 1.14.0
scipy: 1.0.0
pyarrow: 0.8.0
xarray: 0.10.0
IPython: 6.2.1
sphinx: 1.6.6
patsy: 0.5.0
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.4
feather: 0.4.0
matplotlib: 2.1.2
openpyxl: 2.4.10
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.1
bs4: 4.6.0
html5lib: 1.0.1
sqlalchemy: 1.2.1
pymysql: 0.7.11.None
psycopg2: None
jinja2: 2.10
s3fs: 0.1.2
fastparquet: 0.1.4
pandas_gbq: None
pandas_datareader: None

</details>
