Improve handling of recursive watches

IN_CREATE is not guaranteed to be triggered for directories created
inside an already watched directory. Work around this by watching for
IN_CLOSE_NOWRITE events and keeping track of already watched
directories.