Redesign FD/File watchers

Fixes #3015
Fixes #3016
Fixes #3020