Assemble sort keys into an array, and pick them out, each with correct orderType

Fixes many cases, including the example given in #107.

Many other queries currently trip up the planner, including when filtering is present; see the pending tests included in this PR.
Actually as far as I can tell this case never occurs because the second argument is always an array, so never has an exprOp annotation. I think it can be deleted.