in_request: popInReq() after emitting an error
in_request: popInReq() after emitting an error

When we write a response in `res.emitError()` we synchronously
emit `res.emitFinish()` which causes a `popInReq()` for said
out response.

To avoid double `popInReq()` or confusing `conn.onReqDone()`
messages we delay the `popInReq()` until after sending the out
response.

The reason we still need a `popInReq()` is because `emitError()`
may or may not actually pop it, to not pop the in req is to
leak memory.

uber/tchannel-node,uber/tchannel-node