Persistent HTTP connections

After a response to an HTTP request is no longer needed, the x::http::useragent::base::response, and any content iterators should go out of scope, so that they get destroyed. If the HTTP server supports persistent connections, the user agent object uses them for multiple requests.

However an existing connection cannot be used until its previous request is completed, and the response object and any iterators go out of scope. When the response object and all of its iterators go out of scope, the destructors release their connection with the server. This makes it available to the user agent object where it came from, which makes that connection available to future requests, from the same thread or other threads.