Fix for timing issue in follower.Read

In the Read method, a file could be truncated or move in between when it was os.Stat'd for its maxSize and when it is actually read. This was causing errors when the file would shrink before it was read, because unexpected EOFs were occurring :D

To avoid that problem, I thought it would be safer make the reads occur on a bufio.Reader so its operating on a known amount of data in memory, rather than an unknown quantity on disk. 
This returns an error and an integer. What should occur if an error is returned? If you thought about this question and have a good reason to ignore it, do the `_, _ = ` dance and add a comment to explain why.