Correct clut caching (just in case) and clut shader generation timing

I figure it's fine to only bother to generate a clut shader when we're about to use it, since any other time won't actually tell us if it's successful.  It does mean slightly different logic than before if not successful, though (with the invalid attachment thing.)

-[Unknown]