Cache the result of File.readlines

This was a non-trivial amount of time for large files with many records.
improve tests
Merge pull request #32 from eapache/optimize-line-reading

Optimize line reading