Add reader field to Logstream type
Use a gzip reader if needed when opening logs

Uses file extension to guess whether a log file is gzipped.

If so, a gzip reader is used. If not, the file descriptor is used
as the Logstream.reader.
Make createFileReader private and extract isGzipFile
Modify SeekInFile and FileHashMismatch to handle gzipped files

Previously, Seek was used on the current fd to seek to the
penultimate line in the file and hash the last line.

Where the current file is gzipped, consume bytes from the
gzip reader to give the same effect as Seek.

This creates unnecessary garbage but is probably the simplest
way to emulate Seek.
Only compare file size and seek position for non-gzipped files

Number of unzipped bytes read will often be greater than the file size.
Use strings.HasSuffix to determine whether path ends in .gz
Clarify createFileReader doc
Remove extraneous gzip check in SeekInFile
Remove unneeded comparison in isGzipFile
Merge pull request #809 from mattcottingham/feature/gzip-logstreamer

Support reading of gzipped files with logstreamer