Add support for 'docker exec'

This patch brings in support for running a new command in an existing and active container.
Fixes #6777 and #1228.

Some use cases:
* Perform administrative tasks - add/remove devices, update files, etc
* Debugging a running container - gdb, ssh
* Run periodic commands
* Run commands that are not part of the static container specification.

API
Client: 'docker exec redis touch /tmp/file'
Remote: '/containers/redis/exec'

`State` now embedded to container, you should use `container.IsRunning()`