Add server-side support for `Expect: 100-continue`, other improvements

This PR improves a number of things in akka-http-core and adds server-side support for `Expect: 100-continue` (#15799).

The client-side support depends on #16336 and is therefore postponed for the time being.
My assumption was that the user does something like
~~~scala
entity.dataBytes.<transform>.runWith(<someSinkWithFuture>).map( result => HttpResponse(...))
~~~
which will propagate the error. Given that generating a response while the entity has not yet been read is illegal I would expect this pattern to be rather common, right?