Add low latency canvas code path via SurfaceLayer

This CL re-purposes the commit flow from OffscreenCanvas for push
<canvas> frames in low latency mode.  It also turns on low latency
input events when ther are event listeners registered on the canvas.

TBR=zmo@chromium.org

Bug: 788439
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I8be2755ba953fd2c77e2420356ad582d96b95e7a
Reviewed-on: https://chromium-review.googlesource.com/793950
Reviewed-by: Justin Novosad <junov@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Olivia Lai <xlai@chromium.org>
Commit-Queue: Justin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520557}
14 files changed