Aborting with incomplete response

“context canceled” on a request usually means the client closed the connection early; in this case, the proxy started writing the response but couldn’t finish because the client cancelled it. The Go standard library panics here (or at least it used to) but we simply emit a log instead.

I guess we could use more discretion with the log leveling… emit a debug-level log if the error is context.Canceled, otherwise let it stay an error level. It’d be less noisy.