Add entity collision, events, and self-sufficiency.

Entity class now tracks its own UID and can check for collisions
with other entities. EntityManager also adds basic events to 
entities for when they are removed and when a player collides.
Existing entity classes updated accordingly.