Convert Accumulator to take a BlockBuilder

Follow https://github.com/facebook/presto/issues/2042
You can do:

```java
List<Type> types = aggregates.stream()
    .map(Aggregator::getType)
    .collect(ImmutableCollectors.toImmutableList());
```