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.
If you ignore any pipeline, the transformation will not in general be valid. I can take a look at this with you if you like.