IAgentRuntimeListener functionality added

It is now possible to listen for events from the AgentRuntime. The only
two events are "agent started" and "agent stopped". These are necessary
when