Store shadow information in a vector instead of a linked list

Currently ShadowData is a linked list (it contains an OwnPtr<ShadowData>).
This means that doing anything nontrivial is much harder than it should be,
so this patch changes it into a vector. The current linked list is stored
in reverse order, while the new vector is stored in the specified order,
so most iteration over shadow information is now in reverse order (the
first-specified shadow is painted on top).

As a result of the change, the existing interpolation logic for shadows
is greatly simplified. Also the style builder phase is moved to the
generated code since we can now fit the pattern (the current behaviour is
having the style builder create individual nodes and the RenderStyle join
them). We also can share text-shadows when they are inherited.

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

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