Drafts support

Summary:
Adds support for drafts.
This includes creating, updating, deleting and sending drafts;
both independant drafts + drafts that are replies are possible.

We implement drafts as immutable objects (like all messages in Inbox). Thus, updating a draft
creates a new draft message under the hood. We do this so update conflicts are handled
correctly i.e. two updates to the same draft cannot result in non-deterministic behavior.

Test plan:
Tests are in tests/imap/test_drafts.py

Reviewers:
spang

Reviewed By:
spang

CC:
emfree, mg

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