Apply the correct style to first-letter pseudo elements composed of different renderers

Traverse (in preorder) the whole subtree under a render block with a first-letter selector when
looking for the text renderers which would need to get the apropriate style applied, instead of
only considering the first renderer only, which might not contain all the text that should be
considered as a "first letter" (leading and trailing punctuation should be included too).

The present patch also considers leading spaces, if any, as part of the first-letter element,
to match the behaviour of other renderers such as IE and Opera (Firefox does not do that).

R=eseidel@chromium.org, eae@chromium.org, leviw@chromium.org
BUG=354403
TEST=Add new test to check first-letter elements composed of different renderers.

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

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