Add MultiplexedChamber
Allow sending multiple items simultaneously, and break up large sends into fragments to avoid overloading connections.
Considerations:
- no native support in WebSockets (protocol extensions exist but are not supported)
- needs backpressure information from connection (only send next fragment when not many pending fragments) to allow sending short messages while large files are in progress
- will need to be either fixed channel definitions or have some kind of channel type identifier with the data
- sending to "any" will need to be solved on the client side and applied to all packets, to ensure all packets reach the same target
- only continue sending to recipients who received first packet (in send-to-all cases may be easier to keep sending to all regardless) - if all recipients leave, stop sending
- could be nice to provide in-progress indicators (e.g. for progress bars for file transfers)