Implemented file sharing checks in the server.
Added set file time server request.
Overall clean up of the file handling (DOS device handling is now
broken, should be redone).

diff --git a/server/semaphore.c b/server/semaphore.c
index 8becaf0..deb0618 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -34,6 +34,7 @@
     no_read_fd,
     no_write_fd,
     no_flush,
+    no_get_file_info,
     semaphore_destroy
 };
 
@@ -96,7 +97,8 @@
 {
     struct semaphore *sem = (struct semaphore *)obj;
     assert( obj->ops == &semaphore_ops );
-    printf( "Semaphore count=%d max=%d\n", sem->count, sem->max );
+    fprintf( stderr, "Semaphore count=%d max=%d name='%s'\n",
+             sem->count, sem->max, get_object_name( &sem->obj ) );
 }
 
 static int semaphore_signaled( struct object *obj, struct thread *thread )