Sometimes, depending on the buffering, or length of data being received,
the end of the data could be the 1st byte or so of a UTF8 character.
This would cause a crash when trying to decode the raw data buffer.
This switches it to only decode once a full line has been found.
It also adds tests for the LogMonitor class.