Implements virtual shadow mapping for EEVEE-Next primary shadow solution. This technique aims to deliver really high precision shadowing for many lights while keeping a relatively low cost. The technique works by splitting each shadows in tiles that are only allocated & updated on demand by visible surfaces and volumes. Local lights use cubemap projection with mipmap level of detail to adapt the resolution to the receiver distance. Sun lights use clipmap distribution or cascade distribution (depending on which is better) for selecting the level of detail with the distance to the camera. Current maximum shadow precision for local light is about 1 pixel per 0.01 degrees. For sun light, the maximum resolution is based on the camera far clip distance which sets the most coarse clipmap. ## Limitation: Alpha Blended surfaces might not get correct shadowing in some corner casses. This is to be fixed in another commit. While resolution is greatly increase, it is still finite. It is virtually equivalent to one 8K shadow per shadow cube face and per clipmap level. There is no filtering present for now. ## Parameters: Shadow Pool Size: In bytes, amount of GPU memory to dedicate to the shadow pool (is allocated per viewport). Shadow Scaling: Scale the shadow resolution. Base resolution should target subpixel accuracy (within the limitation of the technique). Related to #93220 Related to #104472