[graphite] Only pass the first part language tag to graphite

Still not sure about:

1) Case.  We pass lowercase for now.  Would be nice if graphite was
uppercase 3letter like OpenType,

2) Padding.  IMO, tag padding is always with spaces, but Martin was
talking about NUL bytes.
diff --git a/src/hb-graphite2.cc b/src/hb-graphite2.cc
index 76b8a2f..0749a93 100644
--- a/src/hb-graphite2.cc
+++ b/src/hb-graphite2.cc
@@ -236,9 +236,10 @@
 
   if (!charlen) return TRUE;
 
-  /* XXX(behdad): Do we need OT lang tag here? */
   const char *lang = hb_language_to_string (hb_buffer_get_language (buffer));
-  gr_feature_val *feats = gr_face_featureval_for_lang (data->grface, lang ? hb_tag_from_string (lang, -1) : 0);
+  const char *lang_end = strchr (lang, '-');
+  int lang_len = lang_end ? lang_end - lang : -1;
+  gr_feature_val *feats = gr_face_featureval_for_lang (data->grface, lang ? hb_tag_from_string (lang, lang_len) : 0);
 
   while (num_features--)
   {