base: Avoid purging more discardable memory than necessary.

In situations when discardable memory usage is above the limit,
instead of purging the amount of memory that we would try to
reclaim under moderate memory pressure, purge only what is
necessary to stay below the limit.

This simplifies the code and makes it easier to understand how
memory is purged as a result of reaching the memory limit.

BUG=237681
TEST=base_unittests --gtest_filter=DiscardableMemoryProviderPermutationTests/DiscardableMemoryProviderPermutationTest.LRUDiscardedAmount/*

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234652 0039d316-1c4b-4281-b951-d872f2087c98
Blink roll 161815:161846

http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog_blink.html?url=/trunk&range=161816:161846&mode=html

TBR=yhirano

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234653 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 234653