Table 2

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