[buffer] Implement output_glyph() in terms of replace_glyphs(0,1)

To my surprise, saves ~20kb in my build (non-size-optimized) build.
The output_glyph() method is never used in the fast paths, so doesn't
matter if is not fully optimized for the special case it is.
diff --git a/src/hb-buffer.hh b/src/hb-buffer.hh
index c457e73..1a5229c 100644
--- a/src/hb-buffer.hh
+++ b/src/hb-buffer.hh
@@ -251,15 +251,8 @@
   }
   /* Makes a copy of the glyph at idx to output and replace glyph_index */
   HB_NODISCARD bool output_glyph (hb_codepoint_t glyph_index)
-  {
-    if (unlikely (!make_room_for (0, 1))) return false;
+  { return replace_glyphs (0, 1, &glyph_index); }
 
-    out_info[out_len] = idx < len ? cur() : prev();
-    out_info[out_len].codepoint = glyph_index;
-
-    out_len++;
-    return true;
-  }
   HB_NODISCARD bool output_info (const hb_glyph_info_t &glyph_info)
   {
     if (unlikely (!make_room_for (0, 1))) return false;