Have ChildNodeList subclass NodeList instead of LiveNodeList

Have ChildNodeList subclass NodeList instead of LiveNodeList. ChildNodeList
behaves differently than other LiveNodeLists and causes a lot of special
handling / branching in LiveNodeList and LiveNodeListBase.
LiveNodeList can also now deal solely with Elements instead of generic Nodes as
ChildNodeList was the only subclass not dealing with Elements.

Therefore, handling ChildNodeList separately makes the code a lot cleaner and
is also good for performance. I see a 3-4% improvement on the following
performance test: Bindings/node-list-access.html.

This patch is inspired from the following WebKit patch by <antti@apple.com>:
http://trac.webkit.org/changeset/158536

R=esprehn, adamk

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

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