Replace LocalOrSpectatePlayer property with GetLocalOrSpectatePlayer() that will always prefer to return the currently spectated player regardless of current camera viewmode
Replaced property with getter method to make it clearer that we should prefer to cache the player rather than repeatedly fetching
Checked and replaced all the previous usages. Many files touched, many minor bugs fixed due to the spectate player value having been wrong. Definitely* no new bugs introduced