Make HttpRequest extend the lifetime of its HttpConnection.

Also make HttpConnection::Clone return a shared_ptr instead of a raw pointer.