Split DummySerial into serial and logger classes

The previous individual DummySerial class did not lend itself to the
building of a proper serial emulator. Rather, it's far cleaner to build
the equivalent of a null-modem in code and separate out the emulator
into a class which simply uses a serial port (dummy or otherwise).

This is now working nicely with the command line utilities but there
seems to be some threading issue with the Qt GUI...