Fix infinite loop in normalization code with variation selectors

Reported by Jonathan Kew.
diff --git a/src/hb-ot-shape-normalize.cc b/src/hb-ot-shape-normalize.cc
index 6d516c5..eb9f32a 100644
--- a/src/hb-ot-shape-normalize.cc
+++ b/src/hb-ot-shape-normalize.cc
@@ -143,8 +143,11 @@
 {
   /* TODO Currently if there's a variation-selector we give-up, it's just too hard. */
   for (unsigned int i = c->buffer->idx; i < end; i++)
-    if (unlikely (is_variation_selector (c->buffer->info[i].codepoint)))
+    if (unlikely (is_variation_selector (c->buffer->info[i].codepoint))) {
+      while (c->buffer->idx < end)
+	c->buffer->next_glyph ();
       return;
+    }
 
   while (c->buffer->idx < end)
     decompose_current_glyph (c, FALSE);