Added a test which requires the loseConnection call in order to pass in r26725 (it is necessary because it's the outgoing request's transport, whereas the request.finish() call will only deal with the incoming request's transport).

Use the incoming IRequest object in the HTTP proxy when generating
a response to it rather than using its undocumented transport object.
This makes the proxy more generally useful (as it might support custom
request objects now), fixes a bug which led to proxied requests not
being logged, and simplifies the proxy code slightly be removing the
need for it to know much about the protocol-level formatting of HTTP.