Boolean slicing on MultiIndex only works if bool index is same length as MultiIndex
#### Code Sample, a copy-pastable example if possible

```python
from __future__ import print_function
import numpy as np
import pandas as pd

idx = pd.MultiIndex.from_product([['foo', 'bar'], ['a', 'b']],
                                 names=['first', 'second'])
df = pd.DataFrame(np.random.randn(4, 2), index=idx).sort_index()

bool_idx = pd.Series([True, False], index=['foo', 'bar'])

print ('dataframe')
print(df)

print('\nbool idx')
print(bool_idx)

try:
    df.loc[(bool_idx, slice(None)), :]
except ValueError as e:
    import traceback
    print('\nbool index in MultiIndex failed')
    traceback.print_exc()

no_multi_idx = df.reset_index(level=1)
print('\nno multi index')
print(no_multi_idx)

print('successful indexing')
print(no_multi_idx.loc[bool_idx])
```

#### Problem description

A level of a MultiIndex cannot be sliced by a boolean array shorter than the level. A single level of a MultiIndex can contain repeated values (as one level isn't the entire index), so slicing by a smaller array can be necessary.
A single Index with repeated values can currently be sliced by a boolean array without repeated Index values. It would be a smoother user experience if the same feature existed for MultiIndex, especially since this is less of a corner case in with MultiIndex (because it doesn't require repeating index values). I would guess that the same or very similar code to the single Index case could be used to handle the MultiIndex case.

#### Expected Output
```
                     0         1
first second                    
foo   a      -0.569935 -1.146863
      b      -2.087799 -0.506962
```

This can currently be computed by calling ``reset_index``, slicing, and then calling ``set_index`` with append=True.

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 2.7.9.final.0
python-bits: 64
OS: Linux
OS-release: 3.19.0-15-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: None.None

pandas: 0.19.1
nose: 1.3.4
pip: 9.0.1
setuptools: 18.0.1
Cython: 0.21.1
numpy: 1.11.2
scipy: 0.14.1
statsmodels: None
xarray: None
IPython: 3.2.0
sphinx: None
patsy: None
dateutil: 2.6.0
pytz: 2016.7
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: 1.4.3
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.3.2
html5lib: 0.999
httplib2: 0.9.2
apiclient: None
sqlalchemy: 1.0.8
pymysql: None
psycopg2: 2.6.2 (dt dec pq3 ext lo64)
jinja2: 2.8
boto: None
pandas_datareader: None
</details>
