cc: Implement geometry-based tile eviction

This patch optimizes the way we do eviction at the tiling level.

Instead of using sort, it uses a reverse spiral iterator to iterate
tiles in reverse order of what they would have been rasterized in.

In addition to that, shared tiles are returned only by one tiling set
eviction queue. This way tiling set eviction queues can skip shared
tiles those priorities for tree priority are closer to those of unshared
tiles of the twin tiling. This lessen the number of out of reversed
priority order tiles returned by tiling set eviction queues (which
were previously handled by sorting). This will also allow eviction tile
priority queue not to check for shared tiles returned twice.

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

Cr-Commit-Position: refs/heads/master@{#308078}
9 files changed