CSS Transforms: Implement transform-origin

Implements transform-origin as defined in CSS Transforms[1]. Behavior is
similar to -webkit-transform-origin, however transform-origin is not a 
shorthand. New parsing and serialization (mostly matching Gecko) has been 
introduced.

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 on either -webkit-transform-origin
or transform-origin is the same.

However, support for independent animation/transition of 
-webkit-transform-origin-* is removed. The X, Y and Z coordinates now
always transition together.

Note, this property and changes in behavior are guarded by the
CSSTransformsUnprefixed runtime feature (enabled only for testing).

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

BUG=154772

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Custom pseudo element types as an invalidation set feature.

Instead of falling back to full subtree recalcs for invalidation sets
affected by custom pseudo elements, use a flag in the invalidation set
saying that custom pseudo elements need to be invalidated. Can be extended
to invalidate specific custom pseudo element types, but it will probably not
be necessary.

The reason for optimizing this in the first place is to make it possible to
use invalidation sets for :hover/:active/:focus changes where descendants
are affected by changes to those states. The UA stylesheet contains
selectors for :hover/:active/:focus where such state changes affect
descendants and the rightmost compound selector has a custom pseudo element
as its only sub-selector.

R=esprehn@chromium.org
BUG=351613

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Avoid the hash table StyleInvalidator::clearInvalidation in Node::detach when possible

Accessing the hash table in every ::detach call is a lot of overhead since
in the common case the Element is not even in the hash table. We should
check the needsStyleInvalidation() bit first.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170539 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Oilpan build fix for AnimatableLengthPoint3D.

TBR=dstockwell@chromium.org, haraken@chromium.org
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170540 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Removed unused includes from UnicodeIcu.h

Speeds up blink compilation ~ 1.5%

BUG=

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

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

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