Move popular DOM attributes to prototype chains

Design document: https://docs.google.com/a/google.com/document/d/1yeHTCHhulVIlrKyx9_gCguAhLfcefVOa9uxxfW2LVG0/edit

Intent-to-ship-and-implement in blink-dev: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/t0XiZuMey7M/9-5AuhoFyisJ

This CL moves DOM attributes used in Dromaeo to prototype chains. When I landed the CL four months ago (https://codereview.chromium.org/94403002), it caused 20+% regression in benchmarks. However, now that a V8 side fix is landed, there should be no overhead in moving DOM attributes to prototype chains in theory.

Dromaeo/dom-attr 1145 runs/sec => 1130 runs/sec (-1.3%)
Dromaeo/dom-modify 492 runs/sec => 496 runs/sec (+0.8%)
Dromaeo/dom-query 25580 runs/sec => 25107 runs/sec (-1.8%)
Dromaeo/dom-traverse 581 runs/sec => 579 runs/sec (+0.3%)

In particular, I cannot observe any regression in a super micro benchmark that repeats div.firstChild.

I'm going to land this CL and see how much regression is observed in perf bots (I'll email to perf-sheriff@). If I find the regression is unacceptable, I'll revert the CL.

See the design document and the Intent-to-ship email for justification for the regression.

BUG=43394

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

R=jochen@chromium.org

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

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

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