Converted the timer list to use standard list functions.
Allocate a timer id when the window is 0 instead of relying on the
client to do it.
Allow setting timers on windows belonging to other threads (found by
Mike McCormack).

diff --git a/server/protocol.def b/server/protocol.def
index 7f4d10b..e4b8e98 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1557,6 +1557,8 @@
     unsigned int    id;        /* timer id */
     unsigned int    rate;      /* timer rate in ms */
     unsigned int    lparam;    /* message lparam (callback proc) */
+@REPLY
+    unsigned int    id;        /* timer id */
 @END