Allow features to require optional permissions

Design doc:
https://docs.google.com/document/d/1OhL0Yh7SmWffXyjW_XVQOK95Fqh7gLltk1eEtnKN8Ds/edit

Fixed: twpowertools:86
Change-Id: Iccb22aac2b285307854b7a4c002e9702c24d57f2
diff --git a/package-lock.json b/package-lock.json
index 77eb6b2..7a6ad3c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -27,6 +27,7 @@
         "style-loader": "^3.2.1",
         "webpack": "^5.44.0",
         "webpack-cli": "^4.7.2",
+        "webpack-preprocessor-loader": "^1.1.4",
         "webpack-shell-plugin-next": "^2.2.2"
       }
     },
@@ -2187,6 +2188,15 @@
         "node": ">=10.0.0"
       }
     },
+    "node_modules/webpack-preprocessor-loader": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/webpack-preprocessor-loader/-/webpack-preprocessor-loader-1.1.4.tgz",
+      "integrity": "sha512-Ajjj0ns6hwCb5DemvDLp3v5JYHZ0B6+K+CsD3Q/HUc8CWlCTC4QgrUXhZ6oCZG+MDuw44suw2Q3UOZ19FbqzjA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.11.5"
+      }
+    },
     "node_modules/webpack-shell-plugin-next": {
       "version": "2.2.2",
       "resolved": "https://registry.npmjs.org/webpack-shell-plugin-next/-/webpack-shell-plugin-next-2.2.2.tgz",
@@ -3848,6 +3858,12 @@
         "wildcard": "^2.0.0"
       }
     },
+    "webpack-preprocessor-loader": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/webpack-preprocessor-loader/-/webpack-preprocessor-loader-1.1.4.tgz",
+      "integrity": "sha512-Ajjj0ns6hwCb5DemvDLp3v5JYHZ0B6+K+CsD3Q/HUc8CWlCTC4QgrUXhZ6oCZG+MDuw44suw2Q3UOZ19FbqzjA==",
+      "dev": true
+    },
     "webpack-shell-plugin-next": {
       "version": "2.2.2",
       "resolved": "https://registry.npmjs.org/webpack-shell-plugin-next/-/webpack-shell-plugin-next-2.2.2.tgz",