GUI: settings: refactor the IMAP page to include an encryption dropdown, reworded text

REVIEW: 114878
Adding credits for the utf8snowman
Move the QML's ImapAccess to the IMAP library

The idea is that this class on its own shall include everything which is needed
to setting up a network conenciton, including the settings parsing and other
funny steps. There's just no need to duplicate this in the widget-based GUI and
in the QML one.
QML: Split model setup from setSslMode

It doesn't make much sense to have these two merged in the first place, and it
is terribly unexpected for the callers to see some magic happening in response
to setting the SSL mode.

Thanks for suggesting this to Michael Hall (mhall119) on IRC.
QML: pass the account name to the ImapAccess ctor

This is because I want to get rid of any domain-specific knowledge inside this
particular class.
Do not try to register QList<QSslError> if its defining header has been already included
Add skeleton support for tracking the connection method "properly"

There's a couple of problems, as usual. First of all, the enum really has to
live outside of ImapAccess in orderd to make this useful to other classes (like
the SMTP thing) in future. However, this use case is apparently not supported on
with QML where the MOC absolutely needs the enum to live in a class derived from
QObject.

I'm fed up with this, so in the end I decided to just let the
backward-compatibility functions sslMode/setSslMode live for the time being, and
focus my effort somewhere else than towards fighting the moc abomination.

BURN IN HELL, MOC!
Use proper defaults for port numbers
Support invalid configurations, too
Let the ImapAccess access custom QSettings instance
Implement process socket factory
Respect the settings for enabling the ID command
Respect the "start offline" settings bit
Unify cache handling with how the desktop version does this
PrettyMailboxModel: remove any model-specific knowledge from this class

There code was already not making use of the raw TreeItem* pointer access, so it
can just as well be made to rely on the generic QAIM API and nothing else.
ImapAccess: allow access to the SSL cert state icon
Coding style
net: Enable accepting a cert even after it was previously refused
Fix plenty of logic errors in the SubtreeModel

These methods were so wrong that it was not even funny. The *weew* used; how
come that this was not caught before?
SubtreeModel: reimplement forwarding for dropMimeData

The QAbstractProxyModel doesn't handle this for us, so message copying and
moving via drag and drop was broken in the previous version.