Add "close" event to NodeConnection

This adds a `close` event to `NodeConnection` instances, which is triggered (after the initial connection) if the underlying socket is disconnected. If the `NodeConnection` is set to auto-reconnect, then the event also includes the re-connection promise. This allows Brackets client code to gracefully detect and handle failures with the Node process.

CC @peterflynn