Server reorganization:
- moved request handlers to the specific C files
- moved handle management to handle.c
- moved server private includes to server/ instead of include/server/

diff --git a/server/device.c b/server/device.c
index 83446f4..5822293 100644
--- a/server/device.c
+++ b/server/device.c
@@ -18,7 +18,9 @@
 
 #include "winerror.h"
 #include "winbase.h"
-#include "server/thread.h"
+
+#include "handle.h"
+#include "thread.h"
 
 struct device
 {
@@ -44,7 +46,7 @@
     device_destroy
 };
 
-struct object *create_device( int id )
+static struct object *create_device( int id )
 {
     struct device *dev;
 
@@ -77,3 +79,18 @@
     assert( obj->ops == &device_ops );
     free( dev );
 }
+
+/* create a device */
+DECL_HANDLER(create_device)
+{
+    struct object *obj;
+    struct create_device_reply reply = { -1 };
+
+    if ((obj = create_device( req->id )))
+    {
+        reply.handle = alloc_handle( current->process, obj,
+                                     req->access, req->inherit );
+        release_object( obj );
+    }
+    send_reply( current, -1, 1, &reply, sizeof(reply) );
+}