Avoid O(N) mallocs, where N is the depth of the tree, in dispatching events.

This makes event dispatching 40% faster according to the micro benchmark, PerformanceTests/Events/EventsDispatching.html.

The result of the benchmark on my machine is: 
  291 ops/s (without this patch) vs 408 ops/s (with this patch)

- Organize EventContext, MouseOrFocusEventContext and TouchEventContext so that we can allocate EventContext on the stack in the event path.
- EventPath can now use Vector<EventContext, N>, instead of Vector<OwnPtr<EventContext>, N>.
- Touch events are out of scope of this patch. I might address Touch events later.

BUG=325460

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

git-svn-id: svn://svn.chromium.org/blink/trunk@163746 bbb929c8-8fbe-4397-9dbb-9b2b20218538