Remove redundant searches for Player objects in some Events

Because the Event constructor guarantees that any Event attribute
containing a Player will share the same instance as an equivalent
Player inside the GameState, searching for a Player object inside a
GameState at initialization time is a waste of time.

Therefore any attribute updates can be performed on the Player objects
directly and reflect properly in the GameState. This commit simplifies
certain Event initalization methods to reflect this fact.