compute-one everywhere
various fixes around compute_one
fix docstring
Sort(list) hashable
sql: move compute(..., SQL) to blaze/sql.py

Also test column and scalar returns
sql: don't select unnecessarily on head
finalize consumes expr as well
evaluate lazy map
compute: clean up core functions and docstrings
pandas: Series sort uses order.

Thanks to @cpcloud
expr: Selection contains both apply and predicate

Selection used to only have a predicate.  This was troublesome in cases like
the following:

    t['name'][t['amount' < 0]]

Because what was previously the parent, `t['name']`, did not contain the
information necessary to form the predicate, `t['amount' < 0]`

Now we find the common ancestor of the application, t['name'], and the
predicate, t['amount' < 0], and store it as well
compute_one takes scope kwargs

In some cases we needed to know the scope of a computation

    def compute_one(expr, data, scope={})

To defend against this when not needed all compute_one functions were
given **kwargs

    def compute_one(expr, data, **kwargs)

Selection implementations were also fixed
recursive_rowfunc used rather than rowfunc
spark: use recursive rowfunc
expr: __contains__ for subtree
expr: add path function
expr: check bad selection operations are all rowwise
ancestors is lazy
spark: sort tests
remove unused join compute method

Conflicts:
	blaze/compute/python.py