[layout] Optimize buffer message calls

Those aren't exactly free. They were showing up in profiles.
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 0dc5bf2..7a0d026 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -1959,7 +1959,8 @@
       auto &lookup = lookups[table_index][i];
 
       unsigned int lookup_index = lookup.index;
-      if (!buffer->message (font, "start lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag))) continue;
+      if (buffer->messaging () &&
+	  !buffer->message (font, "start lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag))) continue;
 
       /* c.digest is a digest of all the current glyphs in the buffer
        * (plus some past glyphs).
@@ -1978,10 +1979,11 @@
 			     proxy.table.get_lookup (lookup_index),
 			     proxy.accels[lookup_index]);
       }
-      else
+      else if (buffer->messaging ())
 	(void) buffer->message (font, "skipped lookup %u feature '%c%c%c%c' because no glyph matches", lookup_index, HB_UNTAG (lookup.feature_tag));
 
-      (void) buffer->message (font, "end lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag));
+      if (buffer->messaging ())
+	(void) buffer->message (font, "end lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag));
     }
 
     if (stage->pause_func)