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. 
So I actually rewrote that section quite a bit in my branch thats fixing file rotation, one of the changes was just that :P

I'll back port it in a bit :D