consider providing a way to override `respond` function
I'd be interested in a way to override the [`respond` function](https://github.com/koajs/koa/blob/aaac09af1a6aa02161fead1422fac460fbdcce3e/lib/application.js#L193-L238) – perhaps exposing it as a method?

My particular use case at the moment has to do with how the current `respond` function interacts with `ctx.respond = false`, in the context of embedding Koa within a larger application. Generally this works fine -- you can set `ctx.respond` to false, and after Koa's middleware stack runs to completion you can check `res.headersSent` to see if Koa handled the request; if not, continue handling it elsewhere. However this fails when `ctx.body` is a stream. Because of the semantics of `.pipe()`, the first write will happen asynchronously, and when `ctx.headersSent` is checked, it is `false`. This particular case could possibly be solved by doing a `res.write("")` before `body.pipe(res)` but that fails a couple test cases, for reasons that weren't immediately obvious.

While this is definitely a niche case, exposing a way to override or customize `respond` would certainly have other benefits. During a large project we are currently undertaking to migrate an application from Express to Koa, not being able to customize and instrument the response step has required several awkward workarounds.


