Move m_overridesItemAfter member from LiveNodeListBase to HTMLCollection

Move m_overridesItemAfter member from LiveNodeListBase to HTMLCollection as
LiveNodeList never override itemAfter() and this is only useful for
HTMLCollection subclasses.

Also introduce a new canTraverseBackward() method to HTMLCollection and
LiveNodeList() that is used by CollectionIndexCache. This method is inlined
and returns true unconditionally for LiveNodeList which lets the compiler
simplify the branching for the LiveNodeList specialization of
CollectionIndexCache. This results in a 2-3% improvement on the following
performance test:
PerformanceTests/Bindings/node-list-access.html

This patch is based the following WebKit revision by <antti@apple.com>:
http://trac.webkit.org/changeset/158774

R=esprehn, adamk

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

git-svn-id: svn://svn.chromium.org/blink/trunk@166351 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: Finish headers

With this CL, all headers are done!
(Identical in Python and Perl)

This special-cases 4 interfaces, and fixes one type (attributes => methods), with test case.

BUG=239771
R=haraken
NOTRY=true

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

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