Visuality project - Underwater visual rework
(edits applied identically to shaders/ and shaders/world0/, which were
byte-identical for every file touched here, since world0 is the Overworld
override)

Removed:
- The sunlight-caustic system in gbuffers_terrain.fsh (WATER_CAUSTIC_*
  defines, waterCausticPattern(), applyWaterCaustics(), and the call site).
  Underwater sunlight is now carried entirely by the underwater godray
  volume instead.

Underwater godrays (shaders/lib/godrays.glsl, calcUnderwaterGodrays):
- The shaft brightness used to be weighted by an ad-hoc mix of "looking up"
  and "looking toward the sun" dot products, which could make the brightest
  part of the beam point somewhere unrelated to the real sun/moon direction
  - this is the most likely cause of the effect looking detached from the
  camera/player. It now reuses the exact same sun-elevation weighting and
  sun/moon light direction as the outdoor godrays above it in the same
  file, so both effects always agree on where the light source is. The ray
  itself already started at the camera/player eye (view-space origin) and
  still does.
- Colour entering the water is now mixed 80% toward a light blue
  (UNDERWATER_GODRAY_COLOR, vec3(0.45,0.78,1.00)) instead of ~52% toward a
  darker cyan.

Underwater fog/tint (shaders/composite.fsh, isEyeInWater branch):
- Fog and colour tint were previously a single heavy blend. They are now
  two independent, much lighter controls:
    UNDERWATER_FOG_STRENGTH  = 0.15 (distance fog, ~15% of the old density)
    UNDERWATER_TINT_STRENGTH = 0.10 (constant colour-grade wash)
    UNDERWATER_TINT_COLOR    = vec3(0.015, 0.05, 0.16) (dark blue)
- Added a cheap analytic wave/current wobble (UNDERWATER_WAVE_STRENGTH)
  that offsets which pixel of the pre-water scene is sampled, so the
  underwater view gently sways instead of sitting static. This is a single
  extra texture2D(colortex1, ...) fetch per pixel - no noise-texture loop,
  kept deliberately cheap so it doesn't cost extra FPS.

Water surface (shaders/gbuffers_water.fsh):
- Surface alpha lowered from 0.6/0.8 to a single WATER_OPACITY = 0.2 so the
  water reads as clear. Reflection/SSR/fresnel code below it was left
  untouched, as requested, since it was already FPS-balanced.

Not changed:
- Reflection/SSR (SCREENSPACE_REFLECTIONS, SSR_STEPS, fresnel, GGX spec).
- world1/world-1 (End/Nether) water code - they use a different volumetric
  fog system (lib/Volumetric_fog.glsl) and had no caustics to begin with.

All edited files pass a static brace/paren/#ifdef-#endif balance check.
As with the previous edit passes documented in this pack, in-game visual
testing is still required for final tuning, since this environment cannot
run the Minecraft/OptiFine/Iris renderer.
