ENH: add MultiIndex.to_dataframe
ENH: allow hashing of MultiIndex

closes #12397

cc @mrocklin
cc @jcrist 

also adds hashing of MultiIndex. ```
In [52]: i = pd.MultiIndex.from_tuples([(118, 472), (236, 118), (51, 204), (102, 51)])

In [53]: i
Out[53]: 
MultiIndex(levels=[[51, 102, 118, 236], [51, 118, 204, 472]],
           labels=[[2, 3, 0, 1], [3, 1, 2, 0]])

In [55]: i.to_dataframe(index=False)
Out[55]: 
     0    1
0  118  472
1  236  118
2   51  204
3  102   51

In [56]: from pandas.tools.hashing import hash_pandas_object

In [57]: hash_pandas_object(i.to_dataframe(index=False), index=False)
Out[57]: 
0    11950414010286087598
1    11950414010286087598
2    10472907816967777234
3    10472907816967777234
dtype: uint64

In [58]: hash_pandas_object(i.to_dataframe(index=False), index=True)
Out[58]: 
0    17404497957148711178
1     5195826631379738351
2    10365020365066803200
3    15157173997208611942
dtype: uint64
```

odd that [57] can produce duplicates. any thoughts @mikegraham 
(in practice I don't think this matters as we normally *also* include the index, which then makes these unique)

but I have a case where I just want to uniquely hash values (no index) ## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/15216?src=pr) is 86.30% (diff: 100%)


> No coverage report found for **master** at ba05744.

> Powered by [Codecov](https://codecov.io?src=pr). Last update [ba05744...4a151c6](https://codecov.io/gh/pandas-dev/pandas/compare/ba057443d1b69bb3735a4b18a18e4e4897231867...4a151c62baf87a5b33c70a96efee163e57ff2315?src=pr) @jorisvandenbossche ok with this? (I need to build on top of this for other things)..... Yes, looks good. Only thing I am wondering is the name. We already have `Series.to_frame` as well, so it would be nice to be consistent here (although I think I like `to_dataframe` more ..). 

Also wondering if this should be restricted to MultiIndex and not just general for Index (but that can certainly go in a follow-up PR if we want that) sure will change ``.to_frame()``

not sure if we should add this to ``Series``, it doesn't really make senses there :> > not sure if we should add this to ``Series``, it doesn't really make senses there :>

I wrote Index, not Series (but maybe that's what you meant :-)). Index already has a `to_series` method, which is more logical for an Index, but the main motivation would be to just not create more distinction in api between single/multi index  (eg to not always have to check the number of levels of your index when writing generic code, cfr #3268) @jorisvandenbossche yeah that is a fair point, we can revisit, i'll create an issue.