=str #15885 fix outdated error message in StreamTestDefaultMailbox
Merge remote-tracking branch 'pr/15886' into release-2.3-dev
=htc Fix flow transformer naming error
=htc move source files into directories for new package structure
!htc move akka.http.{client,server,parsing,rendering} underneath akka.http.engine package
!htp rename akka.http.routing package to akka.http.server
!htk move RequestBuilding trait from akka.http.testkit into akka.http.clien package, closes #15801
Merge pull request #15936 from spray/wip-15801-mathias

Restructure HTTP package structure, move `RequestBuilding` trait from testkit into `http` module
!hco Make `Content-Length` and `Content-Type` visible but not constructible

This makes the `Content-Length` and `Content-Type` types visible - but not
constructible - outside of Akka HTTP. The change partially reverts #15800.
the http package. The types need to be visible so that Play can access
all parsed headers. However they types are not constructible outside Akka
HTTP because it is not desirable for users to create these headers. Users
should set the Content-Length and Content-Type via the members of the
HttpEntity objects.

Includes integration tests in the io.akka package to ensure that objects
have correct visibility outside akka.http.
Merge pull request #15895 from richdougherty/richd-http-integration-2.3

+hco Make `Content-Length` header public again and add integration tests
!hco make Marshaller(s) covariant in result type
!hco #15915 introduce more shades of HttpEntities

The introduction of BodyParts again showed that not all entity types are
useful for every kind of context. There are now these contexts where
HttpEntities are used:
 - requests
 - responses
 - body parts

And several kinds of entities:
 - Strict
 - Default
 - Chunked
 - CloseDelimited
 - IndefiniteLength

To increase type safety of the API marker-interfaces are introduced defining
which kinds of entities can be used in which contexts:
 - RequestEntity: Strict, Default, Chunked
 - ResponseEntity: Strict, Default, Chunked, CloseDelimited
 - BodyPartEntity: Strict, Default, IndefiniteLength

Also, to be able still to provide abstractions over some kinds of entities
additional auxiliary interfaces were necessary:
 - MessageEntity = RequestEntity >: ResponseEntity: Strict, Default, Chunked (type alias for RequestEntity)
 - UniversalEntity = RequestEntity with ResponseEntity with BodyPartEntity = Strict, Default
Merge pull request #15941 from spray/w/15915-restructure-HttpEntity-hierarchy

!hco #15915 introduce more shades of HttpEntities
=str #15948 Make Broadcast cancel upstream when all downstreams have canceled
Merge pull request #15949 from akka/wip-15948-fanout-cancel-upstream-bug-ban

=str #15948 Make Broadcast cancel upstream when all downstreams have canceled
!hco #15635 reorganize registration of predefined, custom HTTP primitives

 - No more global registration
 - In most cases registration isn't necessary at all
 - Creation of custom HttpMethod and StatusCode is possible through
   a configuration setting in ParserSettings

Fixes #15635.
=hco don't reject headers that refer to charsets or methods not available on the current platform
!htc Replace `Deferrable` with `FastFuture`
!htp,htk Upgrade from `Deferrable` to new `FastFuture`, closes #15962
Merge pull request #15967 from spray/w/15635-http-remove-all-global-state

!hco #15635 reorganize registration of predefined, custom HTTP primitives + other small improvements