perf(message): batch channel fanout under one registry lock
The channel PRIVMSG/NOTICE fanout took the process-wide registry mutex
three times per recipient (modes_of, caps_of, deliver_uid) and
re-rendered/re-serialized the wire per member, so a message to a large
channel did ~3N lock cycles plus N serializations and collapsed on lock
contention. Add Registry::deliver_batch, which snapshots each member's
modes+caps and enqueues under a single lock pass, and have message.rs
memoize the rendered wire by capability-combination (at most 16 variants)
so it renders once per distinct cap combo instead of once per member.
Recipients, deaf/op-moderated/echo behavior, and ordering unchanged.