Refactoring rebuilding of keyspace.

So it's more efficient, and can support my next changes
(making ServedTypes per-cell).
First part of per-cell horizontal sharding support.

Still needs:
- disabling query service on sources.
- unit tests for shard methods.
Merge branch 'master' into replication
Merge branch 'master' into replication
Adding unit test for UpdateServedTypesMap.
Now enabling / disabling query service as needed during horizontal splits.
Adding tests to check the query service is enabled / disabled properly.
Updating healthcheck properly, and testing it in resharding.py.
Merge branch 'master' into replication
Merge branch 'master' into replication
Merge pull request #114 from youtube/replication

Replication