Truncate fixes

Fix the issues in #3 + add some more testing
My concern with switching the watch back from a directory to the file is the only way for fsnotify to detect a file creation event is by watching the directory the file is in. Without relying on that, any attempt at re-opening would depend on guessing when the file would return or possibly continually attempting to stat the file path until it returned. >.<

I have an idea about how to reasonably implement the latter, but I'd rather not cripple core functionality (catching removes and renames) in the mean time for a rare edge case.

Unless I'm misunderstanding something?