[Messaging] Major refactor, move old Message class

Moved old Message class to TestMessage since it's still used in
xmlcheck.cpp/h for TestShredder.

Complete refactor on messaging functionality.
[Messaging] Major cleanup, refactor many qWarnings
[Messaging] Remove all qWarnings in favor of new methods
[Messaging] Append original message to end of details
[Messaging] Clean up message handler block
[Messaging] Simplify save/load blocks and message repetition
[Messaging] Clean up Save Confirm
[Messaging] Allow ::append to have a non-null parent widget
[Messaging] Store parent window in NIF model

Included example usage.
[Messaging] Only add flags when ::message uses no parent
[Messaging] Use own ::info helpers instead of Qt's
[Messaging] Improve Save Confirmation with setWindowModified
[Messaging] Hide Qt warnings to end users for the time being

Should utilize the log table idea for unimportant messages, especially
ones which have the possibility to spam the system and cannot be
controlled like ones from the Qt libs.
[Messaging] Move setWindowModified after fail block

Needs to come after nif->clear().
[Messaging] Add Qt::Tool window flag

Makes message boxes disappear if last main window is closed. Must call
activateWindow() for some reason to give the dialog focus however.