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.
timeout = timeout or self._timeout