Added event system!

- GridElements send a DAMAGE_EVENT when hurt
- GridElements send a MOVE_EVENT when they move

- EventQueue: stores a vector of Events.
  - Can be accessed with []
  - Returns a vector of all events matching <type> with findEventsByType
  - Returns a vector of all events matching <name> with findEventsByName

- Event
    - Event.type - int id of event
    - Event.actor - string name of creator
    - Event.location - place event happened (if applicable)
    - Event.direction - direction event occured in (if applicable)

Currently has definitions for 4 types - DAMAGE_EVENT, MOVE_EVENT, COLLIDE_EVENT, and DEATH_EVENT

We can add more types and event fields as we see fit.

We need to make sure that, when defining a function, that it fires off all events of appropriate type.