BUG: recursion limit on eval when operating on different types
Me being dumb discovered this:

``` python
In [209]: bug = pd.DataFrame({"A": [1, 2], 'B': ['c', 'd']})

In [210]: bug
Out[210]: 
   A  B
0  1  c
1  2  d

In [211]: bug.eval('A + B')

# stack trace truncated ...

RuntimeError: maximum recursion depth exceeded
```

cc @cpcloud 
