Can now specify when to load a texture, or unload or reload

This is used in the Material class, since we only want to keep the
active material on the GPU