Finally fix the player unspectating bug and introduce a new event for when a player spectates none. Update the global functions that check for player existance to use the new implementation.