buffer: over-trim cache when it fills up frequently
Trimming the tile cache can have a high overhead, since we need to scan the tile list for an eligible/worthwhile tile to trim. If trimming happens frequently, we end up re-scanning the list each time. In order to amortize the cost of scanning the tile list, over-trim the cache by a certain amount, instead of only trimming the excess. When trimming happens frequently, we progressively increase the over-trimming ratio, up to 50% of the cache size limit.
Showing with 36 additions and 11 deletions