Web Animations CSS: Implement AnimatableVisibility

Support animation of visibility in the web animations engine. Note that
the existing engine interpolates between collapse and hidden incorrectly,
and returns the end value for any time fraction. The new implementation
handles this particular edge case correctly. There shouldn't be any
compatibility concerns here given how minor the change is (the new
default interpolation behaviour is more important).

This patch also gives AnimatableValue::addWith the default implementation
instead of having it pure virtual so we don't need to explicitly override
it in Animatable(Visibility/Unknown/Neutral).

BUG=257591

Review URL: https://chromiumcodereview.appspot.com/23567014

git-svn-id: svn://svn.chromium.org/blink/trunk@157582 bbb929c8-8fbe-4397-9dbb-9b2b20218538