Better internal design, started covering by tests

* Standalone Twisted docker client
* Got rid of parallel custom code
* Better error handling
* Cleaner code