Eng 6591 partial aggregate

I understand that it was a big shortcut to define this member here so that you would not have to add Override methods to PartialAggregatePlanNode. But if you are going to add a hack,  at least do it LARGE to minimize the possibility of confusion later.
A) add a comment here explaining that m_partialGroupByColumns is only used for the special case of instances of PartialAggregatePlanNode. Explain why you didn't just add it as a member there.
B) Declare the member final private and do NOT initialize it here.
    Instead, initialize the member it to an empty ArrayList (or maybe null would be better in this particular case) in all the existing constructors.
    Initialize the member to the input argument of a new protected constructor -- call that constructor only in PartialAggregatePlanNode's matching constructor.
    Eliminate the dead code in PartialAggregatePlanNode -- that means everything except the matching constructor and the getPlanNodeType function. If we're going to take a minimal approach to that class, let's go all the way.

I ALMOST want PartialAggregatePlanNode to go away and just be a new public constructor on the base class -- just ALMOST but not quite.