Change the way material texture swizzling works... AGAIN.

Actually, I MAY nuke the feature entirely, because OpenGL specs are telling me that texture swizzling doesn't the work the way it would have to for this feature to work.
Remove reference counting from materials.
Add a new TextureCache template that keeps track of non-SDL image representations.

It uses ImageCache as a backing store for SDL surfaces as they are transferred into the non-SDL representation.
Clarify behavior of IVMeshData when asked for the id of a uvmap or attribute by a name it does not know.
Oh boy, it turns out C++ doesn't have properties after all! (Also various standards / code quality fixes)