This patch does a few things: * Uses the same age-based expiration that we use for the standalone cache for the shared cache. * Tracks the last time we expired shared entries. * When allocation fails, tries to expire old entries before allocating another layer, assuming we haven't done so just a few frames ago. * Eliminates the size limits on the shared caches, and just grows them instead of allocating standalone entries. The last bit could cause us to get stuck with larger total texture allocations than we do now, if a lot of entries were used in quick succession (since we never drop shared entries like we do with standalone entries). However, I think it's probably unlikely enough that it's fine to ship it for a few days while I finish up shrinking support. The parameters here (75 and 25) still aren't perfect, and I'll tune them going forward. Differential Revision: https://phabricator.services.mozilla.com/D11273