Support display: contents for elements, first-line and first-letter pseudos.

This CL implements a basic version of display: contents that doesn't take into
account pseudo-elements of display: contents elements.

As part of implementing it, all the non-layout-object styles have been unified.
That means that elements like <option> and <optgroup> no longer have custom
style callbacks just to preserve their computed style while they don't have a
LayoutObject.

Instead, they use the ElementRareData, the same way as display: contents and
getComputedStyle on display: none elements.

TEST=imported/csswg-test/css-display-3/
BUG=657748

Review-Url: https://codereview.chromium.org/2450093005
Cr-Commit-Position: refs/heads/master@{#451966}
31 files changed