compositor-worker: cc->blink mutation plumbing

Add plubming to CC and blink to take a set of compositor mutation from LTHI
and apply them to associated elements in blink.

Compositor mutations are applied to the DOM element using a custom key frame
animation.

The following components are added:

- CompositorMutatorClient: Maintains current set mutations and
provide a callback that is invoked on main thread at begin
  main frame to trigger application of mutations.
- CompositorMutationsTarget: Interface of the components that applies the
  mutations.
- CustomCompositorAnimationManager: Takes a set of mutations and updates their
  respective elements.
- CustomCompositorAnimations: Owns custom keyframe animation for the element
  and can update it given a mutation.

The CompositorMutator and blink->cc plumbing of compositor proxies is in a followup patch: https://codereview.chromium.org/1625473002/

BUG=430155
TESTS=web/tests/CompositorWorkerTest.cpp
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1602343002

Cr-Commit-Position: refs/heads/master@{#386464}
27 files changed