The goal of this first installment is to organize the code a bit so it's more readable,
clean up a bit of left over cruft, and manage link configurations (and links in general).
Subclass of QMessageBox which re-implements the static public
functions. There are two reasons for this:
1) The QMessageBox implementation on OSX does now show the title
string. This leads to message boxes which don't make much sense. So on
OSX we set title to text and text to informative text.
2) If parent is NULL, we set parent to MainWindow::instance. This
prevents message boxes which can go behind MainWindow