Improvements to HTML rendering

String replacement changed to be handled by a DisplayString class, which
avoids having to run the same code on the same input multiple times.
Also added a sizeHint to correctly determine the desired column width,
instead of using the text width of the raw HTML (which is quite a bit
wider).
Rename ProcessModel to the less generic TransitionModel
Adds a tab bar

Now multiple processes can be explored at once. Other than the following
TODOs, it's all there, including code for spawning and closing tabs.

- Need a way to tear off tabs.
- Currently using a placeholder "new tab" button.
- Tab creation position should be more intelligent than it currently is.

In adding a tab bar, the UI has become sufficiently complex that Qt
Designer's UI file is no longer used, instead the code is placed
directly in mainwindow.cpp and tab.cpp where appropriate.