Move watcher implementation into the new Nanoc::Extra::Watcher