Add compute(Expr, DataDescriptor) implementation

Previously we would do

    results = compute(expr, iter(csv_ddesc))

or

    query = compute(expr, sql_ddesc.table)
    with sql_ddesc.engine.connect() as conn:
        results = conn.execute(query)

Now these are baked in so we just do

    results = compute(expr, csv_ddesc)
    results = compute(expr, sql_ddesc)

This is notationally convenient but organizationally tricky.

The left argument is from `blaze.expr`, the right is from `blaze.data`.
Historically these two haven't depended on each other.