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.

<!---
@huboard:{"order":502.0,"milestone_order":387,"custom_state":""}
-->

What about this one ? should we tackle this in the pr or look at it separately. I'm inclined to try to clean it up so we can take incremental steps at cleaning up the code base and avoid such inconsistent apis that might introduce bugs later.