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.
We discussed this very question and decided that detecting and reacting to issues on the HTTP transport layer (like chunk framing problems) should be the job of the HTTP layer. The application should not have the responsibility to inform the user about a problem in the transport layer. The HTTP should "just work", which means that it should generate all error responses that are cause by errors in its realm.
Also, this is what spray currently does.

One could argue that once we have dispatched a request instance to the application it's the job of the application to take care of properly producing error responses in all cases. But this would mean that as a user I have to make sure to properly generate an error response if a request entity stream is terminated with an error.
This requires logic on my side, which I might forget or want to not see on my side.
Either way, currently we have decided against this and for maximum user convenience.