Implement binning for the texture cache and a couple more improvements.
* Sort texture cache items into bins in order to minimize the free list scan time. * Improve the texture cache API by switching the "alternate" Boolean to an enum. * Store texture sizes in cache items. This will be useful when we switch render targets to be allocated out of the texture cache. * When coalescing rects, don't eagerly iterate to a fixed point. Instead just do as many iterations as we need to satisfy the request.