Ensure conversations that have no email in the base folder are dropped

If a least one email in a conversation that is in the base folder but
also in another is removed from the base folder, the conversation may
not be removed from the monitor despite possibly not having any email
in the base folder, since the email may not have been completely removed
from the conversation.

This was particulary being seen with GMail accounts where even single
message conversations were not disappering when trashed because the
converation's email was still in All Mail.

This fix does a few things: Avoids hitting the database when checking
a conversation still has email in the base folder, when it does check
only ensures that email are in the base folder, not *any* folder, and
updates ConversationSet::remove_all_emails_by_identifier to do this
check iternally, clean up its API and implementation and avoids having
to use out args calling it.
10 jobs for wip/all-mail-sticky-conversations in 11 minutes and 52 seconds (queued for 1 second)
Status Job ID Name Coverage
  Build
passed #217359
fedora

00:03:29

passed #217360
ubuntu

00:02:54

 
  Test
passed #217374
deb-package

00:03:06

passed #217383
flatpak

00:04:32

failed #217361
deb-package

00:18:20

failed #217370
flatpak

00:06:49

failed #217375
flatpak

00:06:07

failed #217362
flatpak

00:05:57

 
  Deploy
passed #217363
review

00:00:24

passed #217364
allowed to fail manual
stop_review

00:00:19