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.
```def kill(self, wait_for_exit=False)```
I would change `wait_for_exit` default into True, as someone using this library may want to start another process, and this one won't be yet killed.