[subset] never drop the 'pref' feature.

Never ever drop feature 'pref', even if it's empty. Harfbuzz uses it to choose the shaper for Khmer.
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index a9f6446..117aeaa 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -3728,6 +3728,13 @@
     for (unsigned i : feature_indices->iter())
     {
       const Feature& f = get_feature (i);
+      hb_tag_t tag =  get_feature_tag (i);
+      if (tag == HB_TAG ('p', 'r', 'e', 'f'))
+        // Note: Never ever drop feature 'pref', even if it's empty.
+        // HarfBuzz chooses shaper for Khmer based on presence of this
+        // feature.	See thread at:
+	// http://lists.freedesktop.org/archives/harfbuzz/2012-November/002660.html
+        continue;
 
       if (f.featureParams.is_null ()
 	  && !f.intersects_lookup_indexes (lookup_indices)
diff --git a/test/subset/data/Makefile.am b/test/subset/data/Makefile.am
index d16052b..03c32ba 100644
--- a/test/subset/data/Makefile.am
+++ b/test/subset/data/Makefile.am
@@ -26,6 +26,7 @@
 	expected/layout.gsub5 \
 	expected/layout.gsub6 \
 	expected/layout.gsub8 \
+	expected/layout.khmer \
 	expected/layout.gdef \
 	expected/layout.context \
 	expected/layout.gdef-varstore \
diff --git a/test/subset/data/Makefile.sources b/test/subset/data/Makefile.sources
index abb762a..dd71a11 100644
--- a/test/subset/data/Makefile.sources
+++ b/test/subset/data/Makefile.sources
@@ -25,6 +25,7 @@
 	tests/layout.gsub5.tests \
 	tests/layout.gsub6.tests \
 	tests/layout.gsub8.tests \
+	tests/layout.khmer.tests \
 	tests/layout.notonastaliqurdu.tests \
 	tests/layout.tests \
 	tests/sbix.tests \
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1780.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1780.ttf
new file mode 100644
index 0000000..6f5e789
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1780.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf
new file mode 100644
index 0000000..572c41f
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.31.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.31.ttf
new file mode 100644
index 0000000..31a6c1a
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout-retain-gids.31.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1780.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1780.ttf
new file mode 100644
index 0000000..e3d9c8f
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1780.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf
new file mode 100644
index 0000000..9c122b5
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.1789,17BB,17C6,1794,17B6,1793,1798,17BE.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.khmer/Khmer.keep-layout.31.ttf b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.31.ttf
new file mode 100644
index 0000000..fb54e5b
--- /dev/null
+++ b/test/subset/data/expected/layout.khmer/Khmer.keep-layout.31.ttf
Binary files differ
diff --git a/test/subset/data/fonts/Khmer.ttf b/test/subset/data/fonts/Khmer.ttf
new file mode 100644
index 0000000..4c37487
--- /dev/null
+++ b/test/subset/data/fonts/Khmer.ttf
Binary files differ
diff --git a/test/subset/data/tests/layout.khmer.tests b/test/subset/data/tests/layout.khmer.tests
new file mode 100644
index 0000000..9e8a376
--- /dev/null
+++ b/test/subset/data/tests/layout.khmer.tests
@@ -0,0 +1,11 @@
+FONTS:
+Khmer.ttf
+
+PROFILES:
+keep-layout.txt
+keep-layout-retain-gids.txt
+
+SUBSETS:
+1
+ក
+ញុំបានមើ
diff --git a/test/subset/meson.build b/test/subset/meson.build
index d8bd328..d41c267 100644
--- a/test/subset/meson.build
+++ b/test/subset/meson.build
@@ -19,6 +19,7 @@
   'layout.gsub6',
   'layout.gsub8',
   'layout.gdef',
+  'layout.khmer',
   'layout.context',
   'layout.gdef-varstore',
   'layout.gdef-attachlist',