added BASE type for all three races
added listener for unit events
added unit listeners support into Utils to allow consumers of units to be notified of units changes
new master agent class for all agents that control "slave/servants" units

master agents examples : mineral patches & geysers (control their own haversters), spy agent (control a scouting unit), squad agent (control units assigned to itself)

"to control" here means micro-management of every moves of the servants units, when the agent is destroyed it will "free" its servants so that other agents can take them over
added init() to all agents
new "Base" agent for command centers, nexuses and hatcheries

one base agent is created for every base that's available/constructed, its
role is to assign mineral/gas agents to all nearby ressources and to keep
economy up.

more logics and roles will be assigned to this agent later on when these basic
tasks are fully tested and implemented
removed methods that have been moved to MasterAgent superclass