Changed how the message monitor works. It now does input and output in
one color-coded window, and uses listeners, which is a bit cleaner.