starting to implement the game event system (see #12)

the implementation of #6 (player join/leave/etc) events may be based on
the same structure as this (#12)