Concurrent: Move handling of aggregated promises to AggregatePromise. This simplifies the code for promises that do not use aggregation, and avoids bugs when aggregation functions are used in combination with non-aggregation functions.