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 when the file moves, currently its not holding open the old filehandle to be able to continue to read from the old file, but is re-opening based on filename. 

Presumably there is a new file there that would not be the same as the original and we'd want to read the entire file again, not just the offset into the previous file. 

I.e.
```
touch file.out
for i in {1..1000}; do echo "line $i of awesomeness" >> file.out; done
mv file.out file.out.1
touch file.out
echo "new file of awesomeness" >> file.out
```

In that situation if we were reading from the offset, we'd be trying to read from 1000 lines worth of characters down when what we need to be reading from is from the start.

Did I misunderstand what this functoin is doing? XD