!htp #16162 Upgrade server- and client-side HTTP APIs to "final style"

This PR clears #16162.
It currently builds on #16383, so ignore Björn's commit in your review.

As a temporary measure I have added a stub TCP API as described by #16166. This `TempTcp` stuff will go away when #16166 is cleared.
Yes, I agree that we are in fact talking about how we want the API to look like, which led me towards the separation of concerns expressed in favoring composition over inheritance; that way the user experience will be more consistent. Your point about the `key` is valid in two ways:

* I agree with the approach of defining the user-visible interface separately.
* Looking at the Java DSL I realize that we don’t need to use this type refinement at all, we can just parameterize the `Key[T]` type.

Concerning `unbind` I also agree that the Future should be fulfilled only after the server socket has been closed, i.e. it should be safe to use that port again within `onComplete`. This of course means that StreamTcp needs to implement this and HTTP needs to carry it through—while possibly some work it should not be hard to do and it provides real value for the user.

I note that you sneakily removed the Future-ness of `localAddress` ;-) which I intentionally put there in order to make it possible to learn the real port number if the original bind request was for port zero (i.e. it should be possible to bind to a random free port; this might be quite important for microservice architectures later.