Added Agent interface and base implementation

A new interface called Agent is introduced. This contains all the mandatory identifiers of an Agent:
- agentId
- clusterId
- desiredParentId

A base implementation of Agent (called BaseAgent) which also inplements the Observable interface.