reducers can now have any aggregations as input not just multi bucket aggregations.

InternalSelection now generates the BucketStreamContext and the bucketType can be retrieved and checked using a method on the reducer class