Adding support for 'exec' command

The `exec` command is layered on top of the KV store and the event system. It provides a remote execution mechanism to easily run tasks, collect output and exit codes from agents.