refactor: Pulled business-logic into class `ShardedChatHome`
- Pulled the logic that selects the appropriate shard from the class
`ChatBackendController` into the newly introduced class
`ShardedChatHome`.
- Simplified the configuration
- `InMemoryServicesConfiguration` creates a `ChatHome` of type
`SimpleChatHome`, if the `sharding-strategy` `none` is choosen.
- In that case, the values for `num-shards` and `owned-shards` are
ignored and set to `1` and `0`.
- If the `sharding-strategy` is set to `kafkalike`, a `ChatHome` of
type `ShardedChatHome` is instanciated and the configuration
respects the configured sharding.
- Simplified the configuration of `ChatBackendControllerTest` accordingly.