Use ContainerNode type instead of Node for LiveNodeListBase's rootNode

Use ContainerNode type instead of Node for LiveNodeListBase's rootNode.
LiveNodeListBase::rootNode() returns a ContainerNode but this was sometimes
assigned to a Node was we would loose the type information.

This is particularly useful because some methods are faster on ContainerNode
than Node, e.g. lastNode(). This CL updates both lastNode() and
lastDescendant() methods in HTMLCollection.cpp, both of which can now call
ContainerNode::lastNode() instead of the slower Node::lastNode().

R=esprehn, adamk

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

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