Fix usage of pseudo style cache

This patch fixes our usage of the pseudo style cache so that we will
use a cached pseudo style when creating pseudo-elements if possible
and so that we cache pseudo styles even if they don't get a renderer.
We also move the logic for having styles with animations or transitions
be non-sharable from RenderStyle::isSharable to the StyleAdjuster, so
that animated pseudo-elements will have their parent's style correctly
marked as non-sharable.

As a result, a pseudo-element without a renderer (e.g. display:none
or content:none) to will correctly return its computed style to
getComputedStyle. This also fixes a regression where the pseudo style
cache can end up very large when its parent style is shared.

BUG=345653

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

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