Use minutely aggregations

This massive patch adds minutely rollups for the whisper backend.  We
now require two parameters, the length of time to maintain second-level
data, and the total amount of time to store.  All TopK queries are
handled by the aggregated minute-level data.  Furthermore, Fetch queries
are handled by the second-level data if possible, otherwise they're
handled by the minute-level data.

This is a fairly invasive patch, as it affected pretty much every
routine and violated lots of assumptions in the unit tests (re: step
size).  Thus, all the unit tests were also updated, but I'm not entirely
convinced this patch is BugFree(tm).