I haven't been able to produce a `bw.Flush()` error.  `res.Write()` on the other hand, reads from `UpstreamTransport` while writing to http.Response so writing an `Upstream` that behaves badly is much easier.  Regardless, checking for errors on `bw.Flush()` is the right way to go.  Do you recommend returning a list of errors or return after the first error?  Do you think the following statements should be executed for stats purposes and added to a `defer`?

```
	request.finishPipelineStage()
	request.finishRequest()
	srv.requestFinished(request, res)
```