Move MemoryCache implementation details out of Resource

Currently, the linked-list next/previous pointers for the LRU lists in MemoryCache actually live on Resource. Move them to a new MemoryCacheEntry object that is part of MemoryCache. There are probably more possibilities for changes of this kind.

This change exposed some issues in tests that excercise the MemoryCache directly. Specifically, they add() multiple Resources with the same url, which clobber each other in the MemoryCache::m_resources HashMap. Add an assert to MemoryCache::add() that we are not overwriting existing entries, and give Resources urls in tests where there are conflicts.

BUG=

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

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