Added support for timeout

All executors accept now additional `timeout` parameter.

```
executor = HTTPCoordinatedExecutor("./server", url="http://localhost:8000/", timeout=5)
executor.start()
```

If the executor above won't be able to access the url within 5 seconds it will kill the process and raise `TimeoutExpired` exception. 

New executors should use `check_timeout` method, especially in while loops.

I wasn't sure where to add the tests. I have added them to TestTCPCoordinatedExecutor, but feel free to move them to better place.