SVN_SILENT made messages (after extraction)
Changing the type of reply from within the composer window

Gui: Change the reply mode from the compose window by means
of a dropdown menu from a tool button.

Switching to another (available) reply mode updates the recepients
list in the open compose window. If the "Hand Picked Recipients"
mode is picked, no action is triggered. Making manual changes to
recipients list reflects in the reply mode dropdown as a switch to
"Hand Picked Recipients" mode.

BUG: 321153
REVIEW: 118802
Gui: add icon for mail forward

icons/mail-forward is from oxygen's actions/32x32/mail-forward.png
licensed under LGPLv3

The name mail-forward is retained to allow picking up of the
relevant icon from a user's theme/icon-set other than oxygen.
Support for forwarding messages as attachments

Allow forwarding of a message as an attachment by means of menu actions.
Forwarding takes care of mangling the subject line and marking the
original message as "$Forwarded".

Thanks to paalsteek for his initial work on this.

BUG: 321378
REVIEW: 118606
Tests: Add test to ensure setting of $Forwarded flag after a message forward
Tests: add test rows for reply subject mangling to handle "Fwd"s
Tests: add test for subject mangling when forwarding message

REVIEW: 119615
Remove usage of TreeItem from MsgPartNetworkReply

REVIEW: 118641
Gui: Add an option to start Trojitá minimized

With this option set Trojitá starts minimized or minimized to tray if the tray icon
is enabled.

REVIEW: 119641
tests: the loop which waits for data should be defined just once

There's a difference between the number of iterations required for reading and
writing, which is why the cServer is not modified by this patch.

v2: There was a bug. Both cEmpty and cClient check what the Trojita (as the IMAP
client) sends out. It takes a few iterations of the event loop for the data to
arrive on the socket, which is the reason why there's this repeated call to
processEvents. The number is always the same, because both instances are
checking the same situation -- we're waiting to see what the code under test
"wrote to the server".

The cServer is, however, different -- the loop is there to make sure that the
response is handled by the Parser, sent to the Model, and finally delivered to
some Task. Some of these operations require a roundtrip (or two?) through the
event loop. This number is, however, different than the
cClient/cEmpty/cClientRegExp because it a different code path.

These numbers were needed at least by OS/2; on other platforms, 4 iterations
were enough.

Thanks to Stephan Platz for his review.
tests: Add support for checking the client's output against a regular expression

v2: check that the pattern is not a multiline thing as that won't work with a
QRegExp, unfortunately.

v3: let the test fail with a proper error message when the Trojita-generated
data are wrong. Asserting here makes no sense whatsoever. Thanks to Stephan
Platz for his review.

Also adding some comments to better explain what's going on.
tests: handle non-determinism due to random QHash seeding in Qt5

Previously, a simple call to `QT_HASH_SEED=2 ./test_Composer_Submission` was
enough to hit a failure.

BUG: 338074
REVIEW: 119643