Desired sharding key config must support other columns and not just `id` as primary key

From the discussion in !152829 (comment 1932308354)

Desired sharding key current works on the implicit assumption that the belongs_to table will have the primary key as id.

However, some tables like group_wiki_repositories do not have an id column on it, which is preventing table group_wiki_repository_states from setting up a sharding key.

This needs fixing. We should support non-id primary keys too, by being able to add one more configuration within desired_sharding_key named primary_key:. If not explicitly assigned, use :id.

Edited by Manoj M J