Rework accounting of discardable entries in ImageDecodingStore.

ImageDecodingStore was allowing up to 128 discardable entries before it started
measuring memory usage.
This proved to fragment the address space on websites with a lot of very large
images leading to mmap() failures in v8 due to the lack of large contiguous
space in the address space.

This CL separates heap memory accounting from discardable memory accounting by
adding a new discardable memory usage counter and a discardable memory limit of
256 MBytes which is large enough not to impact performance and low enough to
guarantee that mmap() doesn't fail.
On Android, the kernel actually proved to do a pretty good job at evicting
unpinned ashmem without causing large page cache evictions as opposed to what I
initially feared therefore having a limit as big as 256 MBytes shouldn't be a
problem (while we still need a limit to avoid using all the address space).

BUG=331832

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

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