Refactor|Texture: Reworked TextureVariant into Texture::Variant

Functionally this class remains unchanged except it is now defined
within the scope of de::Texture to match the ownership model of
the variant abstraction.