Use a StringImpl* instead of an AtomicString for NodeListAtomicNameCacheMap's key

Use a StringImpl* instead of an AtomicString for NodeListAtomicNameCacheMap's key.
This results in slightly better performance, mainly by avoiding refcounting
churn on the StringImpl.

This improves Dromaeo's dom-attr test score by ~5.5% on my Linux desktop.
When profiling Dromaeo's dom-attr, I noticed that
NodeListsNodeData::invalidateCaches() was hot (6.7% of time spent), this patch
makes it go down to 5.0%.

This patch minimizes the performance regression caused by r166263, which made
getElementsByTagName() return an HTMLCollection instead of a NodeList. According
to the profiler, the performance impact is mainly due to node lists invalidation,
which is now occuring more frequently because HTMLCollection has an id/name cache
and therefore needs to be invalidated on id/name attribute change.

R=abarth, adamk
BUG=340325

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

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