search: Only drop index if assigned shard has indexed
Created by: keegancsmith
In the event of rebalancing this will allow us to wait until the new node has indexed a repository before dropping it. When a node asks for the list of repositories to index, we return the union of two sets:
- The set of all repositories assigned to it via consistent hashing
- Any repository it has already indexed which is not yet indexed by the node it is assigned. (Rebalancing).
This is as described in v1 of RFC 30.
Part of https://github.com/sourcegraph/sourcegraph/issues/5725