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.
"||" seems strange here -- if hasAggregateOrGroupby() is false, then how can hasDistinctWithGroupBy (m_distinct) still be true? The hasDistinctWithGroupBy() test seems redundant.