create a new ShardState class for tracking Shard State
use ShardState objects for reads and writes
replace Util.formatStateColumnName
move ShardState-specific code out of Util into ShardState
rename ShardState to SlotState
move string-representation of slotstate to the serializer
Modify set rollups to track individual items seen instead of counters.

This is done by hashing each object as it observed, and storing the hashes.  hashes are then merged on rollup.

This puts SetRollup in the same class as TimerRollup in that full-resolution stores rollup objects rather than primitives.
Merge branch 'master' into set_rollups_v2
use getHashes() instead of accessing hash directly.
update changes
Merge pull request #203 from gdusbabek/set_rollups_v2

Set rollups v2 - track individual items across rollups (up to 24h)
Simplify slotFromFinerSlot computation
Fix NPE when updating a coarser slot's stamp; Typo fixes
Add a log statement
Merge pull request #209 from lakshmi-kannan/bf_fix_slot_stamp_npe

Fix NPE when updating a coarser slot's state
Add histogram rollup merge tests; Fix method names
Merge pull request #210 from lakshmi-kannan/bf_histogram_rollup_fixes

Add histogram rollup merge tests; Fix method names
Refactor QueryStringDecoderAndRouter
Merge pull request #211 from chinmay-gupte/chinmay/refactor_QueryStringDecoderAndRouter

Refactor QueryStringDecoderAndRouter.
Add method to range to map coarser subrange to iterable of subranges in finer gran