Move caching out of LiveNodeListBase and into a new CollectionIndexCache class.

This improves Bindings/node-list-access.html's score by 4-5% on my Linux
desktop. This is due to CollectionIndexCache being templated, which gets rid of
isLiveNodeListType() branches in hot code paths.

Further separation between LiveNodeList / HTMLCollection can be done but I kept
this patch minimal to facilitate review.

This patch is based on WebKit r158758 by <antti@apple.com>.

R=adamk, esprehn

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

git-svn-id: svn://svn.chromium.org/blink/trunk@166261 bbb929c8-8fbe-4397-9dbb-9b2b20218538
PartitionAlloc: in Debug mode, always use 8-byte canary values.

This fixes an alignment issue on 32-bit ARM platforms. Previous we used cookie
sizes that guarantee sizeof(void*) alignment on all platforms. However this is
not enough on 32-bit ARM because doubles on that platform need to be 8-byte
aligned.

BUG=312725

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

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