ClusterSharding: Expanded cluster roles support

A fix for ClusterSharding: Expanded cluster roles support #16123

Allow a `roleOverride: Option[String]` to be used when starting `ClusterSharding` for a given entry type. This will allow role defined clusters of `ClusterSharding` for specific entry types instead of requiring the role configuration to be more or less all or nothing across all entry types.

Preserved a couple of the original `ClusterSharding.start` signatures.
and now hasNecessaryClusterRole(role) can be inlined here again