Flatten threads: add UI components to messages

- A quote is added to messages to show which was the previous message in
  the reply chain.
- A "reply" button is added to messages to allow users to compose a
  comment which is added at the end of the reply chain.
- A bug is fixed in calculating the parent reply ID in the extra info
  object. Now parent reply means the first message in a reply chain,
  while previous reply means the previous message in the reply chain.

Bug: twpowertools:153
Change-Id: I699507ade52e80287dd634e61f835d53af6a904d
diff --git a/package-lock.json b/package-lock.json
index b00199b..6464798 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
         "@material/tooltip": "^12.0.0",
         "@material/web": "^0.1.0-alpha.0",
         "async-mutex": "^0.3.2",
+        "dompurify": "^2.4.1",
         "google-protobuf": "^3.19.3",
         "grpc-web": "^1.2.1",
         "idb": "^6.1.2",
@@ -1727,6 +1728,11 @@
         "node": ">=6.0.0"
       }
     },
+    "node_modules/dompurify": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz",
+      "integrity": "sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA=="
+    },
     "node_modules/electron-to-chromium": {
       "version": "1.3.772",
       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.772.tgz",
@@ -5491,6 +5497,11 @@
         "esutils": "^2.0.2"
       }
     },
+    "dompurify": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz",
+      "integrity": "sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA=="
+    },
     "electron-to-chromium": {
       "version": "1.3.772",
       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.772.tgz",