Update CSS prefers-reduced-motion dynamically on Mac and Windows

Previously the content-side support for reduced motion for a frame was
static and would not react to changes in the system settings until you
created a new frame. This CL listens for notifications and recomputes
the webkit preferences when that happens (which then causes the new
prefers-reduced-motion value to be calculated).

This CL also introduces a caching mechanism for the system setting, to
avoid potentially expensive recomputation.

Test: Tested manually on MacOS and Windows devices.
Bug: 722548
Change-Id: I6be0822cc40a697a4373fbf53888d2219e5890f2
Reviewed-on: https://chromium-review.googlesource.com/c/1418498
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628406}
7 files changed