[watchman] handle already-closed input channel
[watchman] handle already-closed input channel

Summary:
`with_watchman_conn` calls `close_connection` in a try-finally. sometimes the exception that gets caught is due to the connection closing unexpectedly. calling `close()` on that already-closed file descriptor raises its own exception:

```
Uncaught exception in Watchman listening loop: Unix.Unix_error(Unix.EBADF, "close", "")
Raised by primitive operation at file "src/unix/lwt_unix.cppo.ml", line 235, characters 14-31
Re-raised at file "/home/mroch/flow/src/hack_forked/watchman/watchman.ml", line 358, characters 2-430
Re-raised at file "/home/mroch/flow/src/hack_forked/watchman/watchman.ml", line 370, characters 6-69
Re-raised at file "/home/mroch/flow/src/hack_forked/watchman/watchman.ml", line 366, characters 2-220
Re-raised at file "/home/mroch/flow/src/hack_forked/utils/core/exception.ml", line 36, characters 33-76
Called from file "src/core/lwt.ml", line 2048, characters 23-28
Re-raised at file "/home/mroch/flow/src/monitor/fileWatcher.ml", line 181, characters 6-381
Re-raised at file "/home/mroch/flow/src/monitor/fileWatcher.ml", line 259, characters 16-958
Re-raised at file "/home/mroch/flow/src/monitor/fileWatcher.ml", line 227, characters 12-1023
```

we should just ignore that.

Reviewed By: nmote

Differential Revision: D27678171

fbshipit-source-id: 789c9af2604577b6860633d8fee9724a975b89e1

facebook/flow,mroch/flow,facebook/flow,mroch/flow,mroch/flow,facebook/flow,mroch/flow,facebook/flow,facebook/flow,facebook/flow,mroch/flow,facebook/flow,mroch/flow,mroch/flow