Majorly refactor world, event and unit to comply with the new event framework.

Events are now handled internally within the event module. The Event class was
split into the classes History and PlayerHistory. Every World instance now
contains a single instance of History, and the History instance contains a
PlayerHistory instance for each player in the game, in addition to a master
event history. All event dictionaries are fully encapsulated within this module.
The world module was split into world, unit and wall modules, each containing
their respective classes. The actor module was introduced, and contains tne
Actor class, such that Unit extends actor. The add_unit method in World no longer
takes a Unit as an argument, but takes arguments similar to those of a Unit
constructor, and internally constructs a unit and adds it to world.units.
Event-throwing functions now take their referants as arguments, and extract the
necessary data on their own.