* Pass MessageBoxManager instantiation around instead of relying on a singleton
* Mock MessageBoxManager for unit tests when needed, since they don't have a
QApplication which is required for creating QWidgets
* Remove GUI class, which didn't have a clear purpose
Update docs to recommend using `%` operator with `QLatin1String` even for joining two strings (not only *more than two* strings).
Mentioned optimisation of "lightweight" QLatin1String copying-and-converting-to-utf16 when appending only works with QStringBuilder (operator %). Otherwise, QLatin1String will be converted to QString, and only then copied (appended), which is slower.
Add guides about using QStringLiteral, QLatin1String, QLatin1Char and QStringBuilder for more efficient strings.
Qt uses uses these techniques internally and can be considered as good coding practice when working with Qt libraries.