child_process: emit 'disconnect' asynchronously

Deferring I/O-triggered events to the next event loop tick is not just
a good idea, IT'S THE LAW!

(Yes, I'll amend the commit log before landing this.)