Cache thread avatars

This change adds the AvatarsDB class, which lets the threadListAvatars
feature interact with a cache of thread avatars.

This is an implementation of points 1 and 2 in the "Idea" section of the
following doc: go/eu7T9m (public link available in the linked bug). The
doc includes a rationale for this change and what it does.

Bug: 2
Change-Id: Ida9fcd909e3bd4a552361317b9013cb8734272a6
diff --git a/package.json b/package.json
index 0044d04..33e929e 100644
--- a/package.json
+++ b/package.json
@@ -32,5 +32,9 @@
     "webpack-cli": "^4.7.2",
     "webpack-shell-plugin-next": "^2.2.2"
   },
-  "private": true
+  "private": true,
+  "dependencies": {
+    "idb": "^6.1.2",
+    "poll-until-promise": "^3.6.1"
+  }
 }