Scalar coercion - Server selection

Two cute features that build up to a bigger feature.

Scalar expressions are comfortable coercing certain types

```python
>>> d = ScalarSymbol('d', 'datetime')
>>> expr = d > '2012-01-01T12:30:00'
>>> isinstance(expr.rhs, datetime)
True
```

We make a cute function to turn strings into scalar expressions.  Note, as written this uses `eval`.  I do absolutely *no* sanitation yet.  This issue should block this PR until its resolved.

```Python
>>> dtypes = {'x': 'int', 'y': 'real'}
>>> exprify('x + y', dtypes)
x + y
>>> isinstance(_, Expr)
True
```

Using these we extend the server to leverage the expr/compute layer rather than just the data later. 

Example query:

```python
{'selection': 'amount >= 200',
 'columns': 'name'}
```

CC @quasiben

<!---
@huboard:{"order":353.0,"custom_state":""}
-->

The Internet sayeth thus:
```
    if '__' in expr:
        raise BadGuyException
    else:
        return eval(expr, {'__builtins__':{}})
```
is a reasonable attempt to thwart bad behavior. That would at least make someone work hard to mess stuff up.