add primitive test (reopens file multiple times)
basically whitespace
need to watch the new file each time we re-open it
remove existing watcher

The watcher seems to bind to the file descriptor even though it's
storing it internally by name.  Just to be safe we'll remove the watcher
before re-opening the file and re-adding the watcher.  We have to re-add
the watcher or new rename/delete events are not triggered.
encapsulate as a watchedFile
maybe this is more idiomatic go?
cleanup on error?

Should I be checking for errors when cleaning up?  Which error would I
return?
try to close handle and watcher

Try to close handle and watcher before returning any error.  What error
should I return if both errored?