Eliminate network jitter from touch input replay

Previously, the touch handler used message receive timestamps when
re-injecting touch events into the Android framework. This gave ample
opportunity for network jitter to mangle the gesture playback, introducing
skips, jumps, and other undesired behavior.

This patch uses client-side event timing offset to account for the
difference in uptimeMillis() between the client and VM. When a new DOWN
event is received, the offset between the two uptime counters is calculated
and stored. Then, the event times of the following stream of pointer MOVEs
are adjusted according to this offset.

Also added is processing of "Historical" batched MotionEvents where a
series of pointer movements are batched up into a single Event. Ignoring
these, if the client actually produces them, would be another source of
skipping and jumping in gesture playback.

Finally, also added support for the "edgeFlags" field just in case anything
uses those flags for things like "swipe in from edge" gestures. Discussion
online indicate these flags aren't typically used, but just in case...

Change-Id: Ib479e7e46428e5c91c1b65cd05fd06ed4102c299