Move HTMLCollection's id / name cache to a new NamedItemCache class

Move HTMLCollection's id / name cache to a new class. HTML's collection
m_hasValidIdNameCache, m_idCache and m_nameCache members were replaced by a
single OwnPtr that holds an instance of NamedItemCache when populated.

Most HTMLCollections do not have a valid namedItemCache so we end up saving
some memory. This also makes the code a bit clearer.

This patch is based on the following WebKit revision by rniwa@webkit.org:
http://trac.webkit.org/changeset/164772

R=

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

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