[animation-worklet] Move work to a separate backing thread

This version introduces the backing thread.
It uses a completion event to do the animation synchronously; this
lines up with the division of tasks outlined in the task issues.
The mutation update is sent synchronously.
In moving some classes (CompositorMutator based) to a compositor managed
lifetime they change to refcounting to match the thread behavior.

Bug: 731727
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia774e53b5bf34e0cef5d7f0dd9d02fc3b27f4b20
Reviewed-on: https://chromium-review.googlesource.com/630857
Commit-Queue: Peter Mayo <petermayo@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544171}
22 files changed