-shareWhileActive

This behaves like `RefCount` in Rx, _temporarily_ multicasting a signal while there are subscriptions to it, disposing of it when there aren't, and being able to do this any number of times (unlike `-autoconnect`, which is being deprecated in #877).

These commits were cherry-picked out of #874, since that keeps getting delayed/refocused.