query fails with local variables in expressions
Proper message for overlapping locals/frame (tested):

```
In [28]: a = Series(randint(3, size=5), name='a')

In [29]: b = Series(randint(10, size=5), name='b')

In [30]: df = DataFrame({'a': a, 'b': b})

In [31]: df.query('b - 1 in a')
NameResolutionError: resolvers and locals overlap on names ['b']
```

Expression works when there's no local (tested)

```
In [50]: del b

In [51]: a
Out[51]:
0    2
1    2
2    0
3    1
4    2
Name: a, dtype: int64

In [52]: df.b - 1
Out[52]:
0    3
1    4
2    7
3    7
4   -1
Name: b, dtype: int64

In [53]: df.query('b - 1 in a')
Out[53]:
Empty DataFrame
Columns: [a, b]
Index: []
```

Works fine when I use the local by itself (tested):

```
In [34]: df.query('@b in a')
Out[34]:
   a  b
4  2  0
```

However, when I try to reference the local `b` using `@b` _in an expression_, things go awry (not tested):

```
In [55]: b = Series(randint(10, size=5), name='b')

In [56]: df.query('@b - 1 in a')
UndefinedVariableError: local variable '@b' is not defined
```
