More Table Operations

**tl;dr:  We now have math operations and better string printing**

Refactor ColumnWise into `BinOp` and `UnaryOp`.  Support standard arithmetic and mathy operations more smoothly.  We leverage the fact that all projects use very similar names for their functions.  E.g. everyone uses `+,-,*,/,**` and everyone uses `exp, cos, sin, ...`.  We use these across `pandas: numpy`, `python: math`, `sqlalchemy: sqlalchemy.func`. 

We also add an explicit `TableSymbol` to `TableExpr`.  TableExprs now satisfy the following invariant

    eval(str(expr)) == expr

```Python
In [1]: from blaze.expr.table import *

In [2]: t = TableSymbol('{name: string, amount: int, id: int}')

In [3]: expr = t[exp(t['amount']) < 1]['name'] * 2

In [4]: 

In [4]: from blaze.compute.python import *

In [5]: data = [['Alice', 100, 1],
        ['Bob', 200, 2],
        ['Alice', 50, 3]]

In [6]: list(compute(expr, data))
Out[6]: ['AliceAlice', 'BobBob', 'AliceAlice']
```