Caching SamplerState

Plus a couple revisions to compressed textures.

If you want tests then I think this should wait until we move the GL calls from Texture into GraphicsContext. Close if that's the case.