Moved all references to file descriptors out of the generic object
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.

diff --git a/server/thread.h b/server/thread.h
index cc37f25..314ceab 100644
--- a/server/thread.h
+++ b/server/thread.h
@@ -81,9 +81,9 @@
     void                  *reply_data;    /* variable-size data for reply */
     unsigned int           reply_size;    /* size of reply data */
     unsigned int           reply_towrite; /* amount of data still to write in reply */
-    int                    request_fd;    /* fd for receiving client requests */
-    int                    reply_fd;      /* fd to send a reply to a client */
-    int                    wait_fd;       /* fd to use to wake a sleeping client */
+    struct fd             *request_fd;    /* fd for receiving client requests */
+    struct fd             *reply_fd;      /* fd to send a reply to a client */
+    struct fd             *wait_fd;       /* fd to use to wake a sleeping client */
     enum run_state         state;         /* running state */
     int                    attached;      /* is thread attached with ptrace? */
     int                    exit_code;     /* thread exit code */