Improve texture and vertex caches

This does the following:

 * Makes the vertex cache cache based on frames, not draws.  Fixes issues in Mimana, ClaDun, 30 Minute Hero, Patchwork Heroes, Senjou no Valkyria 3, Crystal Defenders, etc.
 * Makes the texture cache use a similar system to the vertex cache (status, expontential backoff, really just based on what you did, hopefully as well.)
 * No longer deletes textures on invalidate ever, only on decimate and when the hash actually fails.
 * Hashes based on the w/h using bufw as a stride.

This fixes texture and vertex cache issues in the games I was seeing them in, and still seems to be pretty fast.

It's still not perfect.  In some games, the wrong texture will show for a few frames and then pop into place (similar problem to the vertex cache before.)  Before it was just never showing the right thing though, so this is an improvement.

I double-checked the speed using the FF Type-0 demo.  It's gotten faster recently and doesn't seem to have any noticeable slowdown from my changes.  Probably it could be more efficient, though.

-[Unknown]