Logfile playback: Only read one packet at a time

This is a less efficient approach to parsing the logfile, since lots of
small file operations is slower than one large file operation. However, it
doesn't make much of a performance difference so far, and it saves
significant development time.

A good time to "fix" this inefficiency would be when adding support for
random playback access.
UI: Add timestamp data

This is a first attempt to show the user when the packet was received.
There also is color highlighting of atomic packets in order to link the
timestamp with the packet itself.

NOTE: Certain text append operations can be very slow. This code was
optimized using data in https://bugreports.qt-project.org/browse/QTBUG-3554