Add HB_NO_SUBSET_LAYOUT

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
diff --git a/src/hb-subset.cc b/src/hb-subset.cc
index 655e495..4362eef 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -47,7 +47,7 @@
 #include "hb-ot-layout-gpos-table.hh"
 
 
-static unsigned int
+static HB_UNUSED unsigned int
 _plan_estimate_subset_table_size (hb_subset_plan_t *plan,
 				  unsigned int table_len)
 {
@@ -196,6 +196,8 @@
     case HB_OT_TAG_VORG:
       result = _subset<const OT::VORG> (plan);
       break;
+
+#if !defined(HB_NO_SUBSET_LAYOUT)
     case HB_OT_TAG_GDEF:
       result = _subset2<const OT::GDEF> (plan);
       break;
@@ -205,6 +207,7 @@
     case HB_OT_TAG_GPOS:
       result = _subset2<const OT::GPOS> (plan);
       break;
+#endif
 
     default:
       hb_blob_t *source_table = hb_face_reference_table (plan->source, tag);
@@ -230,11 +233,16 @@
     case HB_TAG ('h', 'd', 'm', 'x'): /* hint table, fallthrough */
     case HB_TAG ('V', 'D', 'M', 'X'): /* hint table, fallthrough */
       return plan->drop_hints;
+
     // Drop Layout Tables if requested.
     case HB_OT_TAG_GDEF:
     case HB_OT_TAG_GPOS:
     case HB_OT_TAG_GSUB:
+#if defined(HB_NO_SUBSET_LAYOUT)
+      return true;
+#endif
       return plan->drop_layout;
+
     // Drop these tables below by default, list pulled
     // from fontTools:
     case HB_TAG ('B', 'A', 'S', 'E'):