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.
hasDistinctWithGroupBy() is really only for DISTINCT, its implementation is just a m_distinct boolean variable.