Make columnwise lambda debuggable

Instead of `eval`-ing a `lambda` string, this PR introduces a `Lambda` class whose `__call__` method takes the row being computed over. The expression to be computed is given in the constructor, like so:

```python
from blaze.expr import Lambda, TableSymbol
from datetime import datetime
t = TableSymbol('t', '{id: int, datetime: datetime}')
expr = t.datetime == datetime(2000, 1, 1, 1, 1, 1)
f = Lambda(expr.expr, t.columns)
```

In IPython

```
In [12]: from blaze.expr import Lambda, TableSymbol

In [13]: from datetime import datetime

In [14]: t = TableSymbol('t', '{id: int, datetime: datetime}')

In [15]: expr = t.datetime == datetime(2000, 1, 1, 1, 1, 1)

In [16]: f = Lambda(expr.expr, t.columns)

In [17]: f
Out[17]: lambda id, datetime: datetime == ('2000-01-01 01:01:01')
```
> What is currently in this branch feels like a combination of the two. Seeing parse(str(expr)) raises some complexity warning bells for me.

I've removed this, just haven't pushed yet.