preallocate maps to reduce cost of growing them
Shard metrics by key prefix

With prefix=2, this means that 'foo.bar.qux' and 'foo.baz.zot' will end
up in different whisper instances.  This can dramatically speed up
queries, since each epoch in the shard holds less metrics to scan
through to answer topk queries.

This does introduce a global config object that makes testing a bit
uglier though.  That should probably be cleaned up.

Fixes #2