Remove ContentSelectorQuery and simplify <content select> distribution

Looking at the ShadowDOM/LargeDistributionWithLayout perf test in Instruments we spend
substantial amounts of time inside getAttribute and virtual calls during distribution. There's
a lot of unneeded abstractions in distribution that aren't needed, like matchTypeFor(Node*)
where we always ignore the Node argument, or the the virtual selectList(). We also did lots
of extra work like copying the list of selectors into a vector in ContentSelectorDataList
when we could just iterate the list directly instead.

This patch removes all the virtual abstractions and instead uses isHTMLContentElement to check
for the insertion point type. It also inlines lots of calls so that inside the loop in
ContentDistributor::distributeSelectionsTo we don't need to make any function calls at all
if there's no select attribute, and even if there is we only need to make function calls
for running the selector itself. I also removed the calls to getAttribute that were hiding
inside HTMLContentElement::select() which are very expensive to do repeatedly.

This patch makes LargeDistributionWithLayout another 11% faster.

R=dglazkov@chromium.org

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

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