DISPATCH-1274: Separate qd_timer_t lock from server

qd_timer_t was sharing a lock with qd_server_t for historical reasons.
Code inspection shows there is no need for the sharing.

- timer.c calls qd_server_timeout() which is thread-safe, and no other server functions.
- timer calls handlers outside the lock so it doesn't mater what lock is used.
diff --git a/src/server.c b/src/server.c
index 1863546..760126d 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1227,7 +1227,7 @@
     qd_server->cond             = sys_cond();
     DEQ_INIT(qd_server->conn_list);
 
-    qd_timer_initialize(qd_server->lock);
+    qd_timer_initialize();
 
     qd_server->pause_requests         = 0;
     qd_server->threads_paused         = 0;
diff --git a/src/timer.c b/src/timer.c
index 0fd87c7..c76f77d 100644
--- a/src/timer.c
+++ b/src/timer.c
@@ -182,10 +182,10 @@
 //=========================================================================
 
 
-void qd_timer_initialize(sys_mutex_t *server_lock)
+void qd_timer_initialize()
 {
     qd_immediate_initialize();
-    lock = server_lock;
+    lock = sys_mutex();
     DEQ_INIT(idle_timers);
     DEQ_INIT(scheduled_timers);
     time_base = 0;
@@ -194,6 +194,7 @@
 
 void qd_timer_finalize(void)
 {
+    sys_mutex_free(lock);
     lock = 0;
     qd_immediate_finalize();
 }
diff --git a/src/timer_private.h b/src/timer_private.h
index 263fca5..9f6f1cb 100644
--- a/src/timer_private.h
+++ b/src/timer_private.h
@@ -36,7 +36,7 @@
 
 DEQ_DECLARE(qd_timer_t, qd_timer_list_t);
 
-void qd_timer_initialize(sys_mutex_t *server_lock);
+void qd_timer_initialize(void);
 void qd_timer_finalize(void);
 void qd_timer_visit();