added abstract Event class

An Event is designed to interrupt the regular flow of the game (player
moving from location to location). The Game will pass control over to
the Event along with a reference to itself, the Event will do whatever
it is designed to do (get player input, change stats, etc.), and then
the Event will hand control back to Game.