Set player invulnerable for 300ms when collision

Enemies won’t damage the player on every game update
Fix Player#setInvulnerable

setTimeout sets this = window
However, the third and following arguments to setTimeout will be sent to
the callback function as arguments, this means we can send in this as an
argument called player and thereby access this.