SPUBLISH respects the cluster’s slots

Classic pub/sub broadcasts to every node on every publish, which does not scale in a cluster and is the reason sharded channels exist.

# classic: every node sees every message
PUBLISH orders.updated '{"id":8814}'

# sharded: the channel hashes to a slot, and only the
# nodes serving that slot are involved
SSUBSCRIBE orders.updated
SPUBLISH orders.updated '{"id":8814}'

# so the channel name is now a sharding decision, and a
# single channel for everything shards to one node.

Choosing a channel name that distributes usefully is a design decision that classic pub/sub never required, and the naive migration — one channel, renamed — puts all the traffic on one node and looks like a regression. Client library support lagged the server by months, which is the practical constraint on adopting it in 2022.