Full support for DISTINCT in aggregations

* Change hash partitioning to support multiple channels
* Add operator to mark rows that are unique on a set of fields
* Add support in aggregations for masking out certain rows, and use this with the mark operator to implement DISTINCT for all aggregations