Rewrote caret implementation to store the information in the server.

diff --git a/server/request.h b/server/request.h
index 63aea54..7051e88 100644
--- a/server/request.h
+++ b/server/request.h
@@ -265,6 +265,8 @@
 DECL_HANDLER(set_focus_window);
 DECL_HANDLER(set_active_window);
 DECL_HANDLER(set_capture_window);
+DECL_HANDLER(set_caret_window);
+DECL_HANDLER(set_caret_info);
 
 #ifdef WANT_REQUEST_HANDLERS
 
@@ -433,6 +435,8 @@
     (req_handler)req_set_focus_window,
     (req_handler)req_set_active_window,
     (req_handler)req_set_capture_window,
+    (req_handler)req_set_caret_window,
+    (req_handler)req_set_caret_info,
 };
 #endif  /* WANT_REQUEST_HANDLERS */