[skottie] Fix Keyframe::Value equality operator

Per spec, reading anything other than the most recently written
union member is undefined behavior.

Keyframe containers always access the same member, consistently.  But
the type-agnostic equality operator does touch both members.

Refactor to avoid undefined behavior.

Also add a couple of unit tests to capture keyframe deduping behavior
(which in turn relies on the equality operator).

Change-Id: I7ba9c335ef28af7ddc71bd6f03d56b891fbdea1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451016
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
8 files changed