Right now filter aggregations run in "compatible" mode if the top level query is `bool: {filter: { match_all: {}}}}` - but this really just just `match_all` in disguise. We should just run in filter-by-filter mode here.
server/src/main/java/org/elasticsearch/common/Rounding.java
public double roundingSize(long utcMillis, DateTimeUnit timeUnit) {
                    return delegatePrepared.roundingSize(utcMillis, timeUnit);
                }
                @Override
                public double roundingSize(DateTimeUnit timeUnit) {
                    return delegatePrepared.roundingSize(timeUnit);
                }
                @Override
                public long[] fixedRoundingPoints() {
                    
                    return null;
                }
            };
        }
        @Override
        public long offset() {
            return offset;
        }
        @Override
        public Rounding withoutOffset() {
            return delegate;
        }
        @Override
        public int hashCode() {
            return Objects.hash(delegate, offset);
        }
        @Override
        public boolean equals(Object obj) {
            if (obj == null || getClass() != obj.getClass()) {
                return false;