WIP on #15086 cancelling processors/subscribers if they are never consumed

By cancelling Subscribers and Publishers, not actors directly etc. In theory anyone could reuse the registry - I have not made it akka private, only the internals of it.

Only in the GroupBy case currently. For it it works because when all substreams are cancelled the entire actor stops itself.

I avoided even thinking about any WeakReference magics, I believe we agreed to avoid them right?

Anyhow, still WIP as needs to be applied to other places which might need it, but comments on impl method already very welcome, thanks!

Eventually resolves #15086
It's because of an chicken-and-egg problem: 

* the to-be-created publisher needs to cancel the subscriptionTimeout once it gets used (the scheduledOnce event),
* so we need to pass it in some form of cancellable: `Cancellable => Publisher`
* that scheduled event has to contain a reference to this Publisher as well, as it needs to cancel it if it isn't cancelled,
* so now I can't create the publisher without giving it some cancellable, and the cancellable needs a ref to THAT publisher.

The promise works around this. (I hope I'm not too tired and am thinking wrong about this).