Created event handling system

This system allows game entities to communicate with the game object, rather than calling the game's methods themselves (which is what we were doing before, and that's bad). To get a sense of how it works, check out the game and mouse files.