ozone: evdev: Keep track of settings & apply to new devices
This closes two large holes in the settings code:
(1) Any changes made before the input device thread starts are lost.
(2) Settings are not internally applied to new devices on hotplug.
In theory these problems should not have mattered because there is a
DeviceChangeHandler class to watch for new devices & reapply settings
whenever a new device appears. However, in practice that class is not
actually instantiated. We've had several reports of settings not being
properly applied.
To fix (1) build up desired settings state on the UI thread in
InputControllerEvdev, and push it to InputDeviceFactoryEvdev once the
thread starts.
To fix (2) keep the desired settings state on InputDeviceFactoryEvdev,
and reapply settings on hotplug.
BUG=451743
TEST=Turned on australian scrolling & ran "sudo restart udev" on
link_freon. Verified scrolling is still australian.
Review URL: https://codereview.chromium.org/
951063004
Cr-Commit-Position: refs/heads/master@{#317851}