Dynamic resource reloading works as long as files aren't deleted in between like what git checkout does
impl/linux/file_watch: Support watching directories
builtin/client_file: Watch directory so that deleting files doesn't stop the watch