Overhaul event system

And, in the process, solve the ‘disappearing player on join’ mystery
and the ‘non-deleting empty game’ mysteries.
rename undraw() to dispose()
pass correspondingActor in GameClient events
end the game when a user navigates away