MultiIndex needs to validate that levels and labels are compatible.
Urp:

```
n [1]: import pandas as pd

In [2]: mi = pd.MultiIndex(labels = [[1.25, 0.25, 3.1], [3.2, 1.2, 4.1]], levels=[['a'], ['a', 'b', 'c']])

In [3]: mi
Out[3]:
MultiIndex(levels=[[u'a'], [u'a', u'b', u'c']],
           labels=[[1, 0, 3], [3, 1, 4]])

In [4]: mi.values
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-4-e9591d864c48> in <module>()
----> 1 mi.values

/Users/jtratner/projects/python/pandas/pandas/core/index.py in values(self)
   2163             values = []
   2164             for lev, lab in zip(self.levels, self.labels):
-> 2165                 taken = com.take_1d(lev.values, lab)
   2166                 # Need to box timestamps, etc.
   2167                 if hasattr(lev, '_box_values'):

/Users/jtratner/projects/python/pandas/pandas/core/common.py in take_nd(arr, indexer, axis, out, fill_value, mask_info, allow_fill)
    630     func = _get_take_nd_function(arr.ndim, arr.dtype, out.dtype,
    631                                  axis=axis, mask_info=mask_info)
--> 632     func(arr, indexer, out, fill_value)
    633     return out
    634

/Users/jtratner/projects/python/pandas/pandas/algos.so in pandas.algos.take_1d_object_object (pandas/algos.c:68489)()

IndexError: Out of bounds on buffer access (axis 0)

In [5]: mi
Out[5]:
MultiIndex(levels=[[u'a'], [u'a', u'b', u'c']],
           labels=[[1, 0, 3], [3, 1, 4]])

In [6]: mi.levels
Out[6]: FrozenList([[u'a'], [u'a', u'b', u'c']])

In [7]: mi.labels
Out[7]: FrozenList([[1, 0, 3], [3, 1, 4]])
```

Labels.max() needs to be <= len(levels) for each pair of levels and labels.
