Use threadsafe set implementation for hb_language lookups

Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
diff --git a/src/hb-common.cc b/src/hb-common.cc
index 67988c3..368789a 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -28,6 +28,8 @@
 
 #include "hb-private.hh"
 
+#include "hb-mutex-private.hh"
+
 HB_BEGIN_DECLS
 
 
@@ -155,11 +157,11 @@
   void finish (void) { free (lang); }
 };
 
+static hb_threadsafe_set_t<hb_language_item_t> langs;
+
 hb_language_t
 hb_language_from_string (const char *str)
 {
-  static hb_set_t<hb_language_item_t> langs;
-
   if (!str || !*str)
     return NULL;