copytruncate should work even if ReOpen is False.

at least, `tail -f` (not `tail -F` which is analogous to ReOpen)
reopens truncated files.

this change introduces the FileChanges struct to abstract the change
notifications for file changes, deletions and truncations.
gotail: add -p argument to use polling
truncate tests should not use ReOpen
fix a regression with truncation detection
Merge pull request #7 from srid/copytruncate_reopen_false

Truncated files must be reopened even if ReOpen is false