!str #16069 disallows using one Keyed sink/source ambiguously (many times)

This can / should wait for Patrik's move-all-the-things PR.
Refs #16069 
Thanks @patriknw, great on-spot comments. I had to reload some caches before I could answer this one... I did spent quite some time on `==` vs `eq` here before (used IdentityHashMap previously), long story is:

Yes, it should and actually *is* instance equality (wat moment, I know), but due to a fancy override a hundred miles away from this code – in `ActorFlowSink` equals and hashcode are overwritten such that Keyed elements always use the `Object#equals`, see here: https://github.com/akka/akka/blob/release-2.3-dev/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSink.scala#L49

Moved things around and we can either be defensive and explicitly `ne` here https://github.com/akka/akka/commit/5a2eb51c918d6c1de69fd3d2658d3a4bdf729c70#diff-7923a4baeadaed324fbceb0174172a02R898 or implicitly rely on the override in ActorFlowSink https://github.com/ktoso/akka/commit/40d472589deda7b06446c52fdbd26d53caefdf70#diff-7923a4baeadaed324fbceb0174172a02R900

I was not able to make the collect here nicer looking - I can't pattern match on the Node element here, it's all from a trait AFAICS..