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

Actually I think most HashSets don't support `null`.  `scala.collection.mutable.HashSet` throws an exception if you try to add `null`.