=str #15622 ActorPublisher now has subscriptionTimeout support
=str #16233 adds ReadAll for FlexiMerge, with JavaDSL and more typesafety
Merge pull request #16293 from ktoso/wip-fleximerge-readall-ktoso

=str #16233 adds ReadAll for FlexiMerge
Merge pull request #16291 from ktoso/wip-actorpublisher-timeouts-help-ktoso

=str #15622 ActorPublisher now has subscriptionTimeout support
Revert "=str #16280 Make flows sharable again" since the problem is solved differently in this branch.

This reverts commit 2af568eb7a0c8d65f3dd2bb04852d05d5cbda416.
=str - Various Flow and FlowMaterializer improvements

  - Switches from using size-of-1/2 Vectors to using Lists
  - Fixes an issue where processorForNode wouldn't use the dispatcher form the settings
  - Adds a dedicated Collect fusion op
  - Adds various simplifications to ActorBasedFlowMaterializer
  - Adds FIXMEs where appropriate
  - Switches `grouped` to use a VectorBuilder
  - Adds support for `scan`
  - ActorBasedFlowMaterializer now uses Iterator instead of head+tail decomp on Seqs
  - Identity and Completed Transformers are now cached
  - Adds dedicated AstNodes for all combinators
  - Adds a hook-in point for fusion in `ActorBasedFlowMaterializer`
  - Adds support for `Operate` an AstNode with a function that create a fusing.Op
  - Adds experimental and slow optimizer as a PoC
  - Adds verification that Ast.Fused does not exist in optimizer input
=htp #16289 in `handleException` also catch strict exceptions during route building or execution
+str - Renames SynchronousPublisherFromIterable to SynchronousIterablePublisher
       Introduces an Actor-based IterablePublisher
       Gives names to most of the publishers
Merge pull request #16273 from akka/wip-misc-materializer-improvements-√

=str - Various Flow and FlowMaterializer improvements
+str - Removes AsynchronousIterablePublisher
Merge pull request #16328 from akka/wip-remove-async-iterable-publisher-√

+str - Removes AsynchronousIterablePublisher
=str - hardens the IteratorPublisher by making it use the ReactiveStreamsConstants
=str #16315 fixes assumption that substream key is always present

Additional fix for race when timout put to mailbox, then timeout cancelled and subscribe succeeds.
So it could happen, that JUST BEFORE `subscriptionTimeout.cancel()` the
`SubstreamSubscriptionTimeout` was already put into the actor's mailbox,
the cancelling then kicks in (does nothing) and then the attaching of
the subscriber kicks in, it passes OK. So the actor gets the timeout
first and then the subscription... So the publisher is already
subscribed to by some subsciber. But now the actor gets the
SubstreamSubscriptionTimeout message, and wants to subscribe the
cancelling subscriber to it. The publisher can only handle 1 subscriber,
so attaching of the cancelling subscriber will fail - well this is not
very bad, because it will just onError the cancelling subscriber rigth
away, but it can be missleading because the debug log will contain the
"cancelling... after..." message, while it has not REALLY cancelled it.

The isAttached can not be added to handleSubscriptionTimeout because
there it's "too late" and the log message would already be sent..

So while writing this up I noticed that it's not an "error race", but
it's still a race we could avoid when putting this isAttached check
before cancelling the publisher... do you think it's worth it?
Merge pull request #16326 from spray/w/16289-fix-handleExceptions

=htp #16289 in `handleException` also catch strict exceptions during route building or execution
Merge pull request #16317 from ktoso/fix-16315-key-could-be-already-cancelled-ktoso

=str #16315 fixes assumption that substream key is always present
Merge pull request #16329 from akka/wip-harden-iterator-publisher-√

=str - hardens the IteratorPublisher by making it use the ReactiveStream...
!str #15236 new transformer

* replace all Transformer with DeterministicOp
* use the IteratorInterpreter for strict if possible
* emit then become
* emit then finish
* termination emits
* FlowTransformerSpec
* rework types to work with Java API
rename and move things, add scaladoc