Add template parameter to ElementTraversal to iterate over Elements of a specific type

Add template parameter to ElementTraversal to iterate over Elements of a
specific type. The resulting code looks like:
HTMLTableRowElement* row = Traversal<HTMLTableRowElement>::firstWithin(table);

This avoids having to traverse generic Elements and then explicitly check their
tag name to make sure it is a specific Element subclass.

This CL only updates one file to use this functionality. The rest of the code
will be ported in a follow-up patch to reduce patch size.

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

R=esprehn@chromium.org, eseidel
BUG=346733

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

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