This is the main player in this commit; I moved all the logic for how columns get paired up with `sort_elements` and `orders` here, and then passed in the result to the column generators