Stream creates a goroutine that, every sampleTime ticks, will send
new dmesg messages to out. It also listens on stop, in case you
need to abort the goroutine. If there is an error setting up the
initial state, it is returned, but otherwise errors are logged and
otherwise ignored.
ParseMessages reads dmesg type messages out of buffer. To do so it
must read the system boot time out of /proc/stat, because dmesg
timestamps are relative to when the system booted.