unify start, stop methods - references #3

- Okay, both start and stop are using wait.
- there's now extracted wait_for method, that takes care of waiting, killing and rising errors, so that wait condition methods can simply return True or False
- there's a constant timeout for stopping process set to 10 seconds. I'm still wandering if it shouldn't be configurable.
```
Simply returns if wait_for condition has been met,
raises TimeoutExpired otherwise and kills subprocess.
```