ClearTextPassword plugin: report error on empty password

The password is empty when it's not set in the settings file.
Settings: Hide unwanted elements on the OutgoingPage

As the page is disabled before it is saved we can not use isEnabled() to determine
whether to save the SMTP password or not. isVisible works fine though and the GUI
looks cleaner that way.

REVIEW: 118509
GUI: Prevent a blank line in the Outgoing settings page

It's better to sync the port warning state with whatever is initially in the
settings.

REVIEW: 118523
Gui: Only set default port when changing submission method

Setting the default port during the initial run of the SettingsDialog is already handled
by MSA::Account and setting it during updateWidgets causes the port to be reset when opening
the SettingsDialog.

Signed-off-by: Jan Kundrát <jkt@flaska.net>

Conflicts:
	src/Gui/SettingsDialog.cpp

REVIEW: 118528
Tests: move test bodystructures to a common header file

This is done so that we can use the bodystructures in other tests too
Tests: Added unit tests for Imap::Network::MsgPartNetAccessManager
Do not use TreeItems in PartWidgetFactory

The TreeItem class is an implementation detail of the ImapModel and should not
be used outside the ImapModel.

REVIEW: 118228
Gui: hide portWarning, passwordWarning and passwordPluginStatus when not using smtp

REVIEW: 118531
Ubuntu indecate progress on MessageListPage

- Show task on the bottom
- Message delegate displays "Message is Loading"

REVIEW: 118513
BUG: 333039