MultiIndex generates IndexErrors for valid indices in large DataFrames
Example (can provide the relevant file via email):

``` python

In [134]: len(data)
Out[134]: 59693

In [135]: data.index.names
Out[135]: ['chr', 'name', 'start', 'end']

In [136]: data.head()
Out[136]: 
                               coverage  covered  total  percentage
chr  name   start    end                                           
chr1 ARID1A 27022884 27024041     10000      216   1157    0.186690
                     27024041     10000       48   1157    0.041487
                     27024041     10000        9   1157    0.007779
                     27024041     10000       31   1157    0.026793
                     27024041     10000       16   1157    0.013829

In [141]: idx = ('chr1', 'ARID1A', 27022884, 27024041)

# get_value works

In [143]: data.get_value(idx, "total").head()
Out[143]: 
chr   name    start     end     
chr1  ARID1A  27022884  27024041    1157
                        27024041    1157
                        27024041    1157
                        27024041    1157
                        27024041    1157
Name: total

# Indexing doesn't

In [144]: data.ix[idx]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-144-96cd6bbdcd31> in <module>()
----> 1 data.ix[idx]

/usr/lib64/python2.7/site-packages/core/indexing.pyc in __getitem__(self, key)
     30                 pass
     31 
---> 32             return self._getitem_tuple(key)
     33         else:
     34             return self._getitem_axis(key, axis=0)

/usr/lib64/python2.7/site-packages/pandas/indexing.pyc in _getitem_tuple(self, tup)
    202     def _getitem_tuple(self, tup):
    203         try:
--> 204             return self._getitem_lowerdim(tup)
    205         except IndexingError:
    206             pass

/usr/lib64/python2.7/site-packages/core/indexing.pyc in _getitem_lowerdim(self, tup)
    320                         new_key, = new_key
    321 
--> 322                 return section.ix[new_key]
    323 
    324         raise IndexingError('not applicable')

/usr/lib64/python2.7/site-packages/pandas/core/indexing.pyc in __getitem__(self, key)
     30                 pass
     31 
---> 32             return self._getitem_tuple(key)
     33         else:
     34             return self._getitem_axis(key, axis=0)

/usr/lib64/python2.7/site-packages/pandas/core/indexing.pyc in _getitem_tuple(self, tup)
    219                 continue
    220 
--> 221             retval = retval.ix._getitem_axis(key, axis=i)
    222 
    223         return retval

/usr/lib64/python2.7/site-packages/pandas/indexing.pyc in _getitem_axis(self, key, axis)
    356             if com.is_integer(key) and not _is_integer_index(labels):
    357                 return self._get_loc(key, axis=axis)
--> 358             return self._get_label(lab, axis=axis)
    359 
    360     def _getitem_iterable(self, key, axis=0):

/usr/lib64/python2.7/site-packages/pandas/core/indexing.pyc in _get_label(self, label, axis)
     44             return self.obj.xs(label, axis=axis, copy=False)
     45         except Exception:
---> 46             return self.obj.xs(label, axis=axis, copy=True)
     47 
     48     def _get_loc(self, key, axis=0):

/usr/lib64/python2.7/site-packages/pandas/core/frame.pyc in xs(self, key, axis, level, copy)
   2278 
   2279         if axis == 1:
-> 2280             data = self[key]
   2281             if copy:
   2282                 data = data.copy()

/usr/lib64/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
   1962                 raise ValueError('Cannot index using non-boolean DataFrame')
   1963         else:
-> 1964             return self._get_item_cache(key)
   1965 
   1966     def _getitem_array(self, key):

/usr/lib64/python2.7/site-packages/pandas/core/generic.pyc in _get_item_cache(self, item)
    532             return cache[item]
    533         except Exception:
--> 534             values = self._data.get(item)
    535             res = self._box_item_values(item, values)
    536             cache[item] = res

/usr/lib64/python2.7/site-packages/pandas/core/internals.pyc in get(self, item)
    880 
    881     def get(self, item):
--> 882         _, block = self._find_block(item)
    883         return block.get(item)
    884 

/usr/lib64/python2.7/site-packages/pandas/core/internals.pyc in _find_block(self, item)
   1011 
   1012     def _find_block(self, item):
-> 1013         self._check_have(item)
   1014         for i, block in enumerate(self.blocks):
   1015             if item in block:

/usr/lib64/python2.7/site-packages/pandas/core/internals.pyc in _check_have(self, item)
   1018     def _check_have(self, item):
   1019         if item not in self.items:
-> 1020             raise KeyError('no item named %s' % com.pprint_thing(item))
   1021 
   1022     def reindex_axis(self, new_axis, method=None, axis=0, copy=True):

KeyError: u'no item named ARID1A'

```

The data from this test file was generated by 

``` python

data = pandas.read_table(
    "test_file", names=["chr", "start", "end", "name", "coverage",
                                       "covered", "total", "percentage"],    
    header=None, index_col=["chr", "name", "start", "end"])

```

Why "large"? Because If I use  a smaller number of rows, indexing works:

``` python

In [171]: data.ix[1:100].ix[idx].head()
Out[171]: 
                               coverage  covered  total  percentage
chr  name   start    end                                           
chr1 ARID1A 27022884 27024041     10000       48   1157    0.041487
                     27024041     10000        9   1157    0.007779
                     27024041     10000       31   1157    0.026793
                     27024041     10000       16   1157    0.013829
                     27024041     10000       13   1157    0.011236

```
