Eng 7326 plannode reorder

This pull requests is basically reordering the Projection node and ORDER BY node for step 1. Step 2 will make the Aggregation node and Projection node inline for certain cases.

For some cases we can not reorder the plan node tree for ORDER BY, I regressed it to use the old plans although they are not efficient.
Are we sure that this assert will never crash on some silly edge case like "GROUP BY a, b, a"?
We should test cases like this to make sure that they either give a reasonable error or that they get deduped to "GROUP BY a, b" or that they get handled correctly even if not optimally.