keep watchers alive

this fixes segfaults on pypy.  we store them in a module level
dictionary, which should be pretty save, since watchers should not be
shared between threads.

thanks fijal!