Refactoring: Renamed _seek_tail() to _seek_position(). Extracted _seek_tail().
Bugfix: LogReader now always seeks the correct tail.

Previously, it would seek(0) if the file size was less than 1024 times the requested number of tail lines, and it would seek(0, 2) if the lines in the requested tail had an average length greater than 1024.

Also, improved memory consumption.