Introduce HTMLDataListOptionsCollection subclass for HTMLCollection

Introduce HTMLDataListOptionsCollection subclass for HTMLCollection to improve
code readability. This moves the element matching logic out of HTMLCollection
and allows for tighter typing since an HTMLDataListOptionsCollection can only
contain HTMLOptionElements.

This gets rid of a lot of casting at call sites.

R=adamk@chromium.org, haraken@chromium.org

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

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