+str #15996 Add unorderedMapAsync

* rename mapFuture to mapAsync
* add unorderedMapAsync
* extract common things for emits to a trait

I'm not sure about the name `unorderedMapAsync`. Any better suggestions?

Refs #15996
This is how it is done in MapAsyncProcessor also.
The futures are fired off by demand from downstream so this emit will always be enqueued immediately, or have I misunderstood something?

Yes, as an optimisation we can have single element emit.