Use high precision time for Event.timeStamp (behind REF)

Change Event.timestamp to expose high-precision monotonic time for Input
events behind a RuntimeEnabledFlag.

For input events we use the WebInputEvents.timeStampSeconds where available.
Where it is not available (e.g., non-input events or events created by the
script) use blink's monotonic time clock.

The timestamp is recorded in the Event object as is provided but we change the
timestamp's origin to the  target document's time origin base before exposing
it.

Also fixes a small bug where keyboard event timestamp was not being plumbed
correctly when it was converted from WebInputEvent to Platform event.

For testing I have added two new facilities:
1. A method to internals that allows conversion from platform time to document time.
2. A method to eventSender that allows obtaining timeStamp of last dispatched event.

BUG=160524
TEST=fast/events/hr-timestamp

Review URL: https://codereview.chromium.org/1352523002

Cr-Commit-Position: refs/heads/master@{#352051}
25 files changed