join: make join work on files and not just directories

`watchdog.observer.Observer` is not able to watch a file. It needs to
watch a whole directory. We make it watch the parent directory and
check we only get notified for real changes for our file/directory.