feat: add basic network management (#188)
Related #163
This PR adds three things (in order from smaller to bigger):
* Getting a container descriptor inside container. This is useful when tests already running inside container with mounted docker socket for container management.
* Execution commands inside running container. This is useful "in general". I.e. we have project with test case that simulates RabbitMQ restarts using `rabbitmqctl stop_app` and `rabbitmqctl start_app`. Also it's used in new tests.
* Basic network management. Docker networks can be created and deleted using `Pool`, containers can be connected to network using `BuildAndRunWithOptions` and `RunWithOptions`, already running containers can be connected to network using `ConnectToNetwork`.
Currrently it's working pretty good but requires too much boilerplate with `docker` package for network management and commands execution.
Also it helps in cases metioned in #163 when you need to run some end-to-end or integration tests with multiple linked containers.