tof-voters: Record name and email in analysis

With this we can make the data a little easier to consume.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Id1cc858dc002adfdf35e2a7bb790dc4872d9c570
diff --git a/tof-voters/libvoters/__init__.py b/tof-voters/libvoters/__init__.py
index a93a4bf..9a2c4a6 100644
--- a/tof-voters/libvoters/__init__.py
+++ b/tof-voters/libvoters/__init__.py
@@ -1 +1,18 @@
 #!/usr/bin/python3
+
+from typing import TypedDict
+
+UserChanges = TypedDict(
+    "User", {"name": str, "email": str, "changes": list[int]}
+)
+
+
+def changes_factory():
+    return {"name": None, "email": None, "changes": list()}
+
+
+UserComments = TypedDict("User", {"name": str, "email": str, "comments": int})
+
+
+def comments_factory():
+    return {"name": None, "email": None, "comments": 0}