CSS Transforms: Implement perspective

Implements perspective as defined in CSS Transforms[1]. Behavior is
similar to -webkit-perspective, but numbers without units are not
valid. In both variants we accept zero although Gecko and spec
require a positive value.

The animation system is modified to avoid running animations and
transitions on both the prefixed and unprefixed variants at the same
time. Internally, animations are mapped to the unprefixed variant.
As animations operate directly on the RenderStyle storage the result
of specifying an animation/transition on either property is the same.

Transitions now track the specified transition-property such that
the end event may reference it. (eg. transition:
-webkit-perspective; will fire an end  event with
propertyName == '-webkit-perspective'). As transitions operate on
changes to values within a RenderStyle, 'transition: all;' only
ever starts transitions on the unprefixed variants.

Note, this property is guarded by the CSSTransformsUnprefixed runtime
feature (enabled only for testing).

[1] http://www.w3.org/TR/css3-transforms/

BUG=154772

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=170326

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

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