Refactor code in preparation for pre-rolled metrics support

### Why?

The objective of the PR is to take the code one step closer to performing arbitrary rollups and also to support pre-rolled metrics.

### How?

Today, RollupRunnable has knowledge about Granularity which is indirectly tied to Cassandra column family. With this PR, we are making the dependency explicit. A RollupRunnable will take in the source CF, the dest CF, the locator to perform rollup for and the "range". The next PR would actually pass in the type of "rollup" to compute. This way RollupRunnable just becomes unaware of granularities and stuff. 

I am looking for feedback with the approach. I don't mind if this PR is shot down. 

### Review suggestions

bd250bd is the commit that has the code changes. The other two commits are test changes.

Tests pass.