Share code between MessageViewerDialog and MessageViewerWindow
Use a common base class for the Private classes of MessageViewerDialog
and MessageViewerWindow to avoid duplication of their members and most
of their functions. Except for different filename filters for email
files (which is an indication why duplicated code isn't a good idea)
the functions were identical.