Add descriptive error messages to connection errors produced by
feat http client.
Support cancelling connection triggered by httpclient through
the Deferred.cancel() call.

Render nice error message when this happens.
Produce a nice cancellation message when the request is cancelled at the
stage of waiting for the server to respond.
Fix the behaviour of http client failing with the timeout when waiting
for response.