Add Physical Click validator

This CL adds a physical click validator to the fw test suite.  To make
this work, I've redone a bit of the way a gesture is recognized.

When you process a set of MtbEvents, it now returns a list of MtbSnapshots
which include the syn_time, button state, and a list of the finger positions.

This change really only effects the physical click validator since it's
the only validator that does anything with the physical click button, but
it required a few minor changes in other validators where they assumed
things about the structure of the packets, but it didn't change anything
functionally in them.

BUG=chromium:431777
TEST=manual

Change-Id: Ib013d7cea3ad546745a97b73e2772adb46f4a8b6
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237898
Reviewed-by: Shyh-In Hwang <josephsih@chromium.org>
diff --git a/test_suite.py b/test_suite.py
index 94c3fb0..381efbf 100644
--- a/test_suite.py
+++ b/test_suite.py
@@ -84,7 +84,7 @@
     plotter.end()
 
     # Run the validators on these events
-    snapshots = mtb.packetize(events)
+    snapshots = mtb.process(events)
     results = test.RunAllValidators(snapshots)
     # TODO (charliemooney): Save these Results and build a report out of them
     for result in results: