Reland "Add a single buffered mode to CanvasResourceProvider"

This is a reland of 5c4bc1ff53af81b21ba55479c492e085cfd10ec2

Original change's description:
> Add a single buffered mode to CanvasResourceProvider
>
> This CL completes the initial implementation of Low Latency mode for 2d
> canvases
>
> Bug: 788439
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I58fcd3fe4ab19fa10f2876f3da4f078fd4fbc2a9
> Reviewed-on: https://chromium-review.googlesource.com/1145235
> Commit-Queue: Justin Novosad <junov@chromium.org>
> Reviewed-by: Fernando Serboncini <fserb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#576962}

TBR=fserb@chromium.org

Bug: 788439
Change-Id: Ie18018ef0ebcff92beb31fcdebbc0ac2e077053e
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1147952
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577566}
4 files changed