Wait for apps that don't respond.

And don't throw if they are already disconnected.
Allow scripts to indicate they're online with process.send("online")
Aligned GRACEFUL_TIMEOUT with the hard coded value in Reload.js.
Merge pull request #502 from nmrugg/master

Always send message event on gracefulReload