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.
I moved the old existing code to this place and did not check this assert. Yes, it should be a bad assert for these silly queries like "GROUP BY a, b, a".  Will add a test for it.