aggregator: fix insufficient and overzealous bucket counts
aggregator: fix insufficient and overzealous bucket counts

Thanks to the detailed explanation by tjamesturner in issue #105.

The bucket allocation strategy was originally intended to be allocating
the same amount of buckets for the future as well as the past, but this
is clearly a waste of space.
More importantly, in case of an expiry that is not a divisor of
interval, one bucket too few was allocated.

lyft/carbon-c-relay,lyft/carbon-c-relay,piotr1212/carbon-c-relay,lyft/carbon-c-relay,grobian/carbon-c-relay,grobian/carbon-c-relay,grobian/carbon-c-relay,piotr1212/carbon-c-relay,piotr1212/carbon-c-relay,piotr1212/carbon-c-relay