Add Indexer for MultiIndex
`.ix[]` doesn't handle MultiIndex very well, for example here is the questions from stackoverflow:

http://stackoverflow.com/questions/15520408/how-to-index-into-a-pandas-multindex-with-ix

http://stackoverflow.com/questions/21234279/selection-with-hierarchical-index-getting-subset-of-the-dataframe

They want to select rows that match some criteria for every level in the index. Can we add an indexer for this, for example, here is my rough implement:

```
import pandas as pd
import numpy as np
from pandas.util.testing import choice

N = 40
np.random.seed(0)
level0 = choice(["A","B","C","D","E"], N)
level1 = choice(["test%d" % i for i in range(1, 4)], N)
level2 = choice(range(5), N)
labels = zip(level0, level1, level2)
values = np.arange(len(labels)*2).reshape(-1, 2)

class MultiIndexIndexer(object):
    def __init__(self, obj, name):
        self.obj = obj
        self.ndim = obj.ndim
        self.name = name

    def __getitem__(self, key):
        idx = self.obj.index
        mask = np.ones(len(idx), dtype=bool)
        for i, values in enumerate(key):
            level = idx.levels[i]
            label = idx.labels[i]
            if values is None:
                continue
            if isinstance(values, slice):
                if values == slice(None):
                    continue
                level = idx.levels[i]
                if values.start is not None:
                    start = level.get_loc(values.start)
                else:
                    start = 0
                if values.stop is not None:
                    stop = level.get_loc(values.stop) + 1
                else:
                    stop = None
                values = level[start:stop:values.step]
            if np.isscalar(values):
                values = [values]
            mask[mask] &= level.isin(values).take(np.compress(mask, label))
        return self.obj.ix[mask]

pd.core.generic.NDFrame._create_indexer("ms", MultiIndexIndexer)    

print df.ms[["A","C"], "test2":"test3", :2]
```

here is the output:

```
            x   y
A test2 0  34  35
        1  52  53
  test3 2  42  43
        2  46  47
C test2 0  14  15

[5 rows x 2 columns]
```
