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.
Merge branch 'master' into inlinecomp

Conflicts:
	src/client/views/conversation-viewer.vala
Use the new viewer mode system
Revert "Put inline composer at bottom of conversation"

This reverts commit 68db56da54ec39637b965fe0883192bbbec9a87d.