Refactoring: that function should not be publicly accessible
Ubuntu: Lazy load Settings tabs

Only create the settings tabs when we need them

REVIEW: 117817
Prevent duplicate signals on model recreation

This is directly related to commit e9619f03311aa71f16bfad41e97011757e327727
which changed the lifetime of ImapAccess. Previously, it used to be recreated
whenever the IMAP Model got recreated, but that commit changed ImapAccess to be
created exactly once (and in future, once for every IMAP account).

The rest of the signals appear to be fine; they do not connect ImapAccess, but
instead work on various models which are published by ImapAccess. In future when
ImapAccess changes to emit signals when the models actually change (and not when
e.g. an unrelated piece of settings like the human readable name, or the SMTP
prefs or something else change), the reconnecting of signals should happen at
that level.

This double-emitting led to a bug when a new account was added the first time,
and some SSL errors were shown. By mistake, two dialogs would pop up, and if a
wrong password was entered, the Q_ASSERT on OpenConnectionTask.cpp, line 493 was
hit.
Ubuntu: Smtp settings

Implemented SmtpManager class to store smtp settings

SmtpSettings page.qml only shows relevant input fields for each MSA Connection method

Default ports are tested and removed knowlege of default ports in QML. A warning
is shown if ports are not the default for the connection method

REVIEW: 117588

Change OutgoingPage of the desktop settings dialog to use SmtpAccountManager

Also changing the UI to choose submission type via Method and Encryption combo box's