Aggregation by time interval should respect the natural boundaries of the argument

minute, hour are straight forward. Grouping by 1d should make sure we bucket points between 00:00 UTC (midnight of consecutive days), 1w/7d should bucket points between consecutive mondays, etc. This story should deal with utc only, handling different timezones will be handled in a different issue.
I'm not sure why we are taking a `uint64` and converting it to `int64`, I know this isn't related to this pr but there's a potential to clean stuff up, this might bite us later if the value overflows `int64`