chg: ignore already closed fds when cleaning up

This should fix this error we see in the CI from time to time:

```
--- /tmp/mercurial-ci/tests/test-chg.t
+++ /tmp/mercurial-ci/tests/test-chg.t.err
@@ -187,6 +187,26 @@
   $ chg bulkwrite --pager=on --color no --config ui.formatted=True
   paged! 'going to write massive data\n'
   killed! (?)
+  Traceback (most recent call last):
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/commandserver.py", line 509, in _serverequest
+      sv.cleanup()
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/chgserver.py", line 382, in cleanup
+      self._restoreio()
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/chgserver.py", line 461, in _restoreio
+      os.close(fd)
+  OSError: [Errno 9] Bad file descriptor
+  Traceback (most recent call last):
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/commandserver.py", line 693, in _acceptnewconnection
+      self._runworker(conn)
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/commandserver.py", line 744, in _runworker
+      prereposetups=[self._reposetup],
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/commandserver.py", line 509, in _serverequest
+      sv.cleanup()
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/chgserver.py", line 382, in cleanup
+      self._restoreio()
+    File "/tmp/hgtests._uvojvqb/install/lib/python/mercurial/chgserver.py", line 461, in _restoreio
+      os.close(fd)
+  OSError: [Errno 9] Bad file descriptor
   [255]
```
15 jobs for topic/stable/chg-flakiness in 52 minutes and 57 seconds (queued for 3 seconds)