Added some player events and a Location class

Added in some player events as well as some base entity and player event classes as well as a Location class to go with some of the events.
Is this supposed to be called *before* the player has left (leaving). Or immediately after? To be more clear: is the Player object stable at this point? This needs to be clear here.