[feature] Add a from_dict method for MultiIndex construction
I've got a use case where I have a data frame with a ton of columns and I want to add a level to the column index to help in groupby operations.  My first instinct was to create a dictionary to illustrate the grouping, and use that pretty directly in indexing the dataframe. I.e.:

```python
hierarchy = {'g0':['c0','c1'], 'g1':['c2', 'c3', 'c4']}
new_index = MultiIndex.from_dict(hierarchy)
```

This just strikes me as a pretty natural way to think about hierarchical structure of data.

So something like this, but with support for nested dictionaries, added to the MultiIndex class:

```python
def from_dict(cls, data, names=None):
    '''
    Construct a two level MultiIndex from a dictionary-like object.

    Parameters
    ----------
    data : dict 
        {group : array-like}
        Here the array-like represents the group members
    names : optional names for the levels.

    Returns
    -------
    index : MultiIndex
	
    Notes
    -----
    Respects grouping order if dict is an OrderedDict
    '''
    lvl1 = []
    lvl2 = []
    for name, cols in data.items():
        lvl1 += [name] * len(cols)
        lvl2 += cols

    return MultiIndex.from_arrays([lvl1, lvl2], names=names)

```
