Allow Directory objects to cache their contents even while watchers are starting up; factor out WatchedRoot into its own module.