[WIP][SPARK-2554][SQL] CountDistinct and SumDistinct should do partial aggregation

Can we use `def newInstance() = child.newInstance()` directly? So we can remove the class `ReturnAggregateFunction`. I didn't see any specific logic in the class `ReturnAggregateFunction`.