Catalyst::Restarter::Forking: clear watcher in child process
This allows any resources held by the watcher to be released in the child
process, where they won't be needed.
This is particularly important in kqueue-based watcher implementations.
The way kqueue works requires an open file descriptor for each file and
directory watched. In the case of modules being loaded from a local::lib,
this can easily amount to many thousands of file descriptors. This is not
only wasteful, but it also prevents select(2) from being called on any
file descriptor subsequently opened: you're likely to get EINVAL because the
descriptor exceeds FD_SETSIZE.