A big part of this is handling coalescing, so that if we end up creating
several new regions in a given frame, we won't allocate/blit/free
textures unnecessarily.

Differential Revision: https://phabricator.services.mozilla.com/D10853