Multicast: cancelling one subscriber no longer terminates the shared upstream
for the others (lhoward/AsyncExtensions#6, answers sideeffect-io/AsyncExtensions#38
review remark); cancelled subscribers still finish promptly.
Cherry-picked from sideeffect-io/AsyncExtensions main:
- 495d616 fix race condition
- b23ae9c Fix subject deadlocks during concurrent cancellation
- 93d173a Fix multicast delivery ordering under concurrent demand
- 507ed0c Fix terminal cancellation in switchToLatest
- 900a91d Fix subject ordering during concurrent sends
- 01936be Fix retention of consumed Just values in nested subscriptions
- fd6753e Fix multicast subscriber cancellation while upstream is suspended
- f2f4afc Release abandoned subject subscriptions and finish test consumers
- e29d029 Make subject termination permanent
- cd98b56 Fix zero-capacity subject replay