Threadsafe method for updating watcher status
Check for non-None watcher before stopping
Merge branch 'master' into libev-rework
Handle more watcher == None cases when stopping loop
Hold GIL while setting python error indicator

PyErr_SetFromErrno() will result in PyThreadState_Get() being called,
which explicitly states that the GIL must be held when it is called.
Before this fix, the process could segfault.
Also hold GIL when checking for error indicator