=str #16280 Make flows sharable again

* Operation hold state and new instance for each materialization
  is needed
+htp resurrect RequestContext.flowMaterializer
+htc a safer Future.awaitResult that doesn't throw away the call stack of the awaiter
=htp #16238 fix RangeDirectives not to assume reusable entity data stream
+str add akka.stream.materializer.file-io-dispatcher setting
+htp #15922 import FileAndResourceDirectives from spray
Merge pull request #16281 from akka/wip-16280-ops-factory-patriknw

=str #16280 Make flows sharable again
!htc,par cleanup warnings

 - about Rendering not being accessible for implementors
 - about DepFn1/2 being defined in package object
=pro fix the parallelExecution setting broken in #16185
=str #16272 splitWhen should drop reference when done with substream

The completeSubstreamOutput is used to not early complete the stream,
where as invalidating would shutdown the stream too early (and elements
wouldn't be emitted as expected).
=pro update to akka-2.3.7
!str #16263 Made subscription timeout handling run mostly inside the actor
Merge pull request #16288 from 2m/wip-update-to-akka-2.3.7

=pro update to akka-2.3.7
Merge pull request #16284 from ktoso/wip-splitwhen-leaks-ktoso

=str #16272 splitWhen should drop reference when done with substream
Merge pull request #16282 from akka/wip-16263-subscription-timeout-ban

!str #16263 Made subscription timeout handling run mostly inside the actor
Merge pull request #16196 from spray/w/15922-FileAndResourceDirectives

+htp #15922 import FileAndResourceDirectives from spray
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 experimental and slow optimizer as a PoC
  - Adds verification that Ast.Fused does not exist in optimizer input