spectatorClientNum was hardcoded to MAX_CLIENTS-1 but the spectator
actually connected at a different slot. All skip checks using it
were no-ops protecting the wrong slot. Removed entirely:
- Zombie slots handle player slot reservation
- G_RunFrame recreates the spectator entity via ClientThink_real
- PlayerState injection writes all slots (spectator's ps gets
overwritten by ClientThink_real anyway)
- SVD_SpectatorClientNum accessor removed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>