"Display message preview" -> "Display conversation preview": Closes #7202
Fixes bug where emails with empty Subject: are not fully fetched
Prevent flag watcher from looping forever

Bruno Girin on the mailing list noticed Geary churning constantly.
Some investigation and I was able to repro it -- an off-by-one
error was causing the flag watcher to forever pull the oldest
email's flags.  This catches that as well as spaces out the
timeout so the next round of fetching happens a full timeout
sequence after the last flags are pulled (rather than starting at
regular intervals, which can come in close on low-powered machines).
Fixes failure to archive multiple conversations

This is something I've noticed rarely but finally figured it out.
Occassionally my first archive operation will involve multiple
conversations.  In that case, current_conversation and last_deleted_conversation
will both be null, causing the "don't archive last archived conversation"
check to succeed.  This works around this problem.
Closes #7154 DB upgrade dialog
Don't display warnings about unknown IMAP response codes: Closes #7179

Since IMAP's response codes are open-ended and subject to further
additions, this also reworks the ResponseCodeType to be more
flexible in what it represents (any atom rather than a fixed enum
of values).
Closes #7174 Fix for account deletion
Don't assert when switching folders; fix #7141
Avoid conflict with Gtk.Window.close: Closes #7196

This doesn't affect Vala 0.20.1, but this will be a problem with
GTK 3.9.7 and the patch does not introduce any backward compatability
problems.
Add new external email to conversations; fix #6498

This accomplishes a few things:
* Adds some signals to the Account that aggregate various Folder
  signals, so anyone can find out when mail has been appended to any
  folder, for example.
* Refactors the ConversationMonitor further.  The conversation grouping
  logic has been split out into a ConversationSet, and
  ConversationMonitor proper is now just the folder interaction.
* The new ConversationSet tracks duplicate emails better using
  Message-IDs, so if you get an email in multiple folders we can figure
  out whether we should actually add it as a new email or not.
* Using all of that, we now kick off a full-conversations update
  whenever new mail comes in on any folder, so your conversations update
  as you're looking at them when Geary sees new mail, regardless of
  folder.
Closes #7176 Find bar assertion
Fixes #7176 Extra close() call
Update search folder on new mail; fix #7132

Also disables the search folder when it is hidden, so we aren't doing
background I/O.
Improved ImapEngine.EmailPrefetcher

The prior ImapEngine.EmailPrefetcher pulled messages one at a time to
prevent hogging the connection with lots of data (when a lot of new mail is
detected).  This patch simplifies some of the preparation code and
pulls the mail down in 128K batches, meaning multiple small messages are
pulled at once, meaning quicker availability without blocking the connection
entirely.
Fix EmailIdentifier's equal_to; fix #7220

I had mistakenly used == to compare FolderPaths, which have their own
equal_to method.

Also, this cleans up a bit of the ConversationSet logic that wasn't
needed since EmailIdentifiers take folder_path into account in their
hash and equal_to methods.
Closes #4644 Spinner fix
Closes #7231 Adds upgrade dialog to install list
SmtpOutboxEmailIdentifier needs FolderPath: Closes #7114
Remove assertions when converting FetchedData to Geary API objects: Closes #6682

a couple of assertions in the code could cause a similar problem, so this removes
them and replaces them with log messages.  Later code in the code path deals with
this problem in a more sane manner.

More specifically, I believe the IMAP rework deals with the problems of certain
servers returning the preview information out-of-order and in separate server data
lines properly.
SMTP buffers not completely written: Closes #7248

The recent fix to support dotstuffing (#7173) introduced a regression
where it was possible for incomplete SMTP buffers (i.e. the message)
to be delivered.

The SMTP layer now deals in Memory.Buffer objects, which required
some small changes to the Authentication interface.  Also, some
missing error-handling in RFC822.Message was introduced.