second pass

Originally I just noticed that the watcher did not work for multiple log rotations so I wanted to fix that.  Then I realized that the watcher might also leak memory if I didn't explicitly remove the file from being watched.  Then I decided I should encapsulate the file, handle, and watcher.  Then I tried to find other possible bugs.
That's a good point.  I'm not sure if receiving and sending data on a channel would be considered modifying the structure.  Perhaps a test can ascertain for sure.