Small performance improvements by caching the world_ubo in the World.
It was detected that NVIDIA driver created threads to update the
world_ubo (304 bytes). This patch will reuse the previous uploaded
ubo when not changed.
Note that in case multiple viewports are open with different settings or
viewpoint the caches will always miss.