One shard at a time, a shard can hold many entries. It is up to the allocation strategy to decide how many rebalance to be in progress at the same time. I think a good change would be to change the signature of `rebalance` to return a Set of shards instead of an Option.

I will also change this impl to return the `first` chard instead of last, because it is more likely that the first is not "in use".