Bug 77992 part 1.0 - Add timeStamp to WidgetEvent; r=smaug

This patch adds a timeStamp member to WidgetEvent alongside the existing 'time'
member. In the future we would like to remove 'time' and just keep timeStamp but
that depends on it being web-compatible. For now we introduce both members
side-by-side. Later we will add a pref to determine which one to return. If no
compatibility issues arise we will remove 'time' altogether.
Bug 77992 part 1.1 - Convert Windows native event times to timestamps; r=masayuki
Bug 77992 part 2 - Make event.timeStamp use TimeStamp value based on a pref; r=smaug

Note that this pref isn't fully live since the timeStamp member of the event
interface is [Pure] and so values will be cached.
Bug 77992 part 3 - Make event.timeStamp return a DOMHighResTimeStamp; r=bz

Even when dom.event.highrestimestamp.enabled is false and we should return
a DOMTimeStamp (=unsigned long long), we still just return a double since that's
what would happen anyway when we convert the DOMTimeStamp to a Javascript
Number and it simplifies the code significantly to just always return a double.
Bug 77992 part 4 - Add mochitests for event.timeStamp; r=masayuki