MaterialSnapshot: Implement smoothed texture animation

If smoothed texture animation is enabled, configure the cached
texture units in MaterialSnapshot accordingly.

This means that this work is now performed only once per material
variant per render frame.

Todo: Smoothing of detail textures is not yet handled.
Todo: Cleanup.