Add various key features

- Agent can now execute commands on dispatcher
- We fully support reconnect and disconnect. Agent will get notified if the dispatcher was down. Agent is able to reconfigure itself (mostly reconnect its event subscriptions)