Don't disable autoflush in IMAP update_metadata().

Summary:
As the included regression test illustrates, invoking
imap.common.update_metadata() could fail when
* You add a label 'some_new_label' to thread A and thread B.
* We haven't seen 'some_new_label' before
* We sync the changes to threads A and B at the same time.

In such a case, disabling autoflush would lead us to try to create the
'some_new_label' tag twice, this would fail at flush time with an
IntegrityError.

Test Plan: Unit test added.

Reviewers: kav-ya

Differential Revision: https://review.inboxapp.com/D557
Validate recipients before sending a draft.

Summary:
We shouldn't let people try to send drafts when the recipients are patently
invalid. So check them before sending.

Test Plan: Unit test added.

Reviewers: khamidou

Reviewed By: khamidou

Differential Revision: https://review.inboxapp.com/D544