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.
> Is this reasonable and expected?

Given our new streamified architecture I'd say: yes.
akka-http-core hands you a request instance before we have seen all of the request entity (or even looked at it).
This means that as a user you cannot be sure that all is well with the entity only because you already have the request instance in your hands. So, if you feed it directly into a file you are accepting the risk that there might be errors happening underway. I don't see a way around that.
The benefit is that you'll know that something is wrong as soon as possible, not at some later point in the future.

> Another question is whether a parsing error MUST always result in an error response.

Yes, I'd consider this a crucial feature. If you speak non-HTTP to our HTTP server the server should inform you about the problem. Silently accepting such input will potentially mask a real problem and cause other issues later which will be hard to debug. One reason for example: if we have a parsing error we must consider the input side of the connection broken and close the connection. This means that the client will have to open a new connection. This alone can cause a significant performance degradation that might be hard to understand if we silently accept broken requests.