Before this commit, there was no way to signal the HTTP client that we were done consuming the response. Without that, the underlying client library cannot know when it is safe to release the associated resources (e.g. the HTTP connection).

This commit adds new close() methods on both ClientHttpResponse and ClientResponse. This methods is non-blocking and its behavior depends on the library, its configuration, HTTP version, etc.

At the WebClient level, close() is called automatically if we consume the response body through the ResponseSpec or the ClientResponse itself.

Note that it is required to call close() manually otherwise; not doing so might create resource leaks or connection issues.

Issue: SPR-15920