set_index fails on enum
#### Code Sample

Create an Enum as described in the [Python docs](https://docs.python.org/3/library/enum.html), then create a dataframe and try to set multiindex:

```python
from enum import Enum
import pandas as pd

class Method(Enum):
    LINEAR = 1
    CONSTANT= 2
    
df = pd.DataFrame(data={"a":[Method.LINEAR, Method.CONSTANT, 
                             Method.LINEAR, Method.CONSTANT], 
                        "b":[1,2,2,3],
                        "c":[0,1,2,3]})
    
df.set_index(["a", "b"])
```
Error: 

>   File "C:\A_PROGRAMS\anaconda3\lib\site-packages\pandas\core\arrays\categorical.py", line 2515, in _factorize_from_iterable
 >   cat = Categorical(values, ordered=True)
>  File "C:\A_PROGRAMS\anaconda3\lib\site-packages\pandas\core\arrays\categorical.py", line 351, in __init__
>    raise TypeError("'values' is not ordered, please "
#### Problem description

Enum is a data type of the official Python 3 STL and should be supported by pandas. set_index works fine with enums when using them alone, e.g. ```df.set_index(["a"]) ``` works. 

I assume that the "ordered=True" might be the problem in categorical.py?

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

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.5.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: en
LOCALE: None.None

pandas: 0.23.0
pytest: 3.5.1
pip: 10.0.1
setuptools: 39.1.0
Cython: 0.28.2
numpy: 1.14.3
scipy: 1.1.0
pyarrow: 0.9.0
xarray: None
IPython: 6.4.0
sphinx: 1.7.4
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.4
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.5
feather: 0.4.0
matplotlib: 2.2.2
openpyxl: 2.5.3
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.4
lxml: 4.2.1
bs4: 4.6.0
html5lib: 1.0.1
sqlalchemy: 1.2.7
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
</details>
