Added destructors to prevent memory loss, especially in the eventQueue, only used a single smart pointer in main to control the agentdomain. Also added a system reset so statics (ID, TMU etc.) are reset on each run, for consistent behaviour