Crash when archiving messages: Closes #6388

Compress conversation code tried to reference first item of an empty
SortedSet.
Closes #6321 Sort accounts
Fixes #6321 Changes from code review (accidentally omittied from original commit)
Spacing issues in mailto: body: Closes #6227

An earlier commit fixed half of this ticket (the more pressing of
the two issues).  This takes care of mailto: links with embedded
CR, LF, and CRLF.
Closes #4647 Closes #5685 Spam/unspam
Closes #5884 Closes #5854 Closes #5816 Closes #6367 String changes
* "Reply To" now labelled "Reply"
* Toolbar overflow menu labels no longer say "translated"
* .desktop file contains keywords
* For generic servers, "Remember password" now says "Remember passwords"
Closes #6349 Keyboard shortcuts for star/unstar, read/unread, prefs, and accounts
Closes #6414 Improve tooltips
Closes #6418 Prettier context menu separators in composer
Focus composer before displaying dialog; fix #6421

In some window managers, windows that display dialogs aren't
automatically presented.  This manually presents the window before it
pops up the dialog, to keep behavior consistent.
Closes #6420 Removes extra margin
Present window without timestamp; fix #5923

We were presenting the main window with an erroneous timestamp, which
was causing composer windows to be created with an incorrect z order.
This presents the window without a timestamp, so there's no room for
error.
Don't assert() on MYRIGHTS SELECT/EXAMINE response: Refs #6205

This doesn't solve #6205, as other unknown responses can cause this
problem as well, but it does fix this for the most-commonly reported
cause of this issue, MYRIGHTS.
Properly decode Unicode folder names; fix #5217

Previously, we were taking folder names as they came off the wire.
Turns out IMAP specifies that folder names with 8 bit code points are
encoded in a crazy scheme unique to IMAP.  Now, we properly decode that
scheme to the correct UTF-8 folder names to be displayed to the user.

There's also now a database upgrade path that converts all existing
mailboxes to the decoded version, so your existing database should just
keep working.
Closes #6044 Shortcuts in tooltips
Indicate unread count in folder list; ref #3694

This just makes the new API and adds the string change.  We're waiting
to hook it up until #6365 lands.
Prefetch mail in background according to age of message: Closes #6365

This introduces a background account synchronizer into Geary that
prefetches email folder-by-folder to a user-configurable epoch.  The
current default is 15 days.

Additional work to make this user-visible is coming, in particular with

The primary purpose for this feature is to allow "full" conversations
(#4293), which needs more of the mailbox stored locally to do searching.
Add message search API; fix #6366

With the new prefetcher, this will let us grab messages outside of the
current folder and insert them in conversations.
Closes #6402 Prefetch UI options. Also fixes SQL bug in prefetcher for new accounts
Deal with close_async() properly

Background prefetcher introduced open/close counts to allow the
same Folders to be opened and closed by multiple users.  However,
open_count shouldn't be respected when forcing a Folder closed due
to remote error.

This was causing a bug where the connection would die but the Folder
would not close, leaving the program in a bad state.