Emit 'close' in OutgoingResponse and IncomingResponse when the underlying stream is closed before finishing

Also add a 'cancel' method to IncomingResponse which simply resets the stream.
Why do we need to check `this.stream.ended` here?