[API] Make set_user_data() functions take a replace parameter

We need this to set data on objects safely without worrying that some
other thread unsets it by setting it at the same time.
diff --git a/src/hb-buffer.h b/src/hb-buffer.h
index a43a8d1..a5efce3 100644
--- a/src/hb-buffer.h
+++ b/src/hb-buffer.h
@@ -75,7 +75,8 @@
 hb_buffer_set_user_data (hb_buffer_t        *buffer,
 			 hb_user_data_key_t *key,
 			 void *              data,
-			 hb_destroy_func_t   destroy);
+			 hb_destroy_func_t   destroy,
+			 hb_bool_t           replace);
 
 void *
 hb_buffer_get_user_data (hb_buffer_t        *buffer,