Unexpected behaviour while dropping
#### Code Sample, a copy-pastable example if possible

```python
>>> ser = pd.Series([f for f in 'abcdefgh'])
>>> ser.drop(ser == 'c')

2    c
3    d
4    e
5    f
6    g
7    h
dtype: object

```
#### Problem description

I see what is going here, `ser == 'c'` results in a list of True/False (meaning 0 and 1), so it drops the  0 and 1 indices. However, this is a completely unexpected result. This should at least raise an exception. I would be happy with an error, but boolean mask support would result in a much more cleaner and simpler syntax than:

```python
ser.drop(ser[ser == 'c'].index)
```
#### Expected Output

Raising an exception or dropping by boolean mask:

```python
0    a
1    b
3    d
4    e
5    f
6    g
7    h
dtype: object

```

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

<details>

INSTALLED VERSIONS
------------------
commit: None

pandas: 0.19.2
nose: None
pip: 9.0.1
setuptools: 36.6.0
Cython: None
numpy: 1.11.0
scipy: 0.18.1
statsmodels: None
xarray: None
IPython: 6.2.1
sphinx: 1.6.4
patsy: None
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: 2.1.0
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.9.6
boto: None
pandas_datareader: None

</details>