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.
Ok, how about this approach:

1. For parse errors in the request header block (not in the entity) we log and send an error across the bypass, which triggers an error response plus connection close. The application sees a simple stream completion (no error).

2. For parse errors in the request entity we log and send an error across the bypass but don't immediately send an error response. Rather, we wait for what is coming back from the application.
The application receives an error termination of the request entity stream and a normal close on the request stream.
The `bypassMerge` waits for the applications reaction on the response stream, which can be one of three things:

    a) Normal close. In this case we send an automatic 400 response and close.
    b) Custom response. We assume that the application wants to react itself to the request entity stream error and render the response before closing the connection.
    c) Stream error. We log and send a 500 response (as we should always do on response stream errors).

This should allow for maximum application flexibility combined with good convenience as by default everything will "just work".