Actually actually abort when db isn't stamped.

Somehow I lost half this commit previously. :/
[SCHEMA] save UserInfo about Google OAuth Account (name, locale, etc.)

Test Plan: run the migration and re-auth

Reviewers: spang

Differential Revision: https://review.inboxapp.com/D81
Replace polling with IDLE

Summary:
    This commit replaces polling on the Inbox folder with the IMAP IDLE command.

    FUTURE TODO:
    * Make sure server supports IDLE via CAPABILITIES command. For example, Yahoo doesn't.
    * Utilize returned Sequence IDs to quickly fetch new messages (though likely won't do this)
    * Make `IDLE_FOLDERS` dynamically configurable via API
    * Consider not doing a HIGHESTMODSEQ and instead just fetch all UIDs when IDLE returns, since it only

Test Plan: Add/remove mail from the Inbox folder, which should trigger an immediate IDLE callback

Reviewers: spang

Reviewed By: spang

Differential Revision: https://review.inboxapp.com/D80
refresh environment
dont serialize messagebody.
rudimentary support for replying to a thread
check for config file, PYTHONIOENCODING, remove pyc, and colorize
goofy mg
Move misc utils back here.

Separating them out while things are still changing so quickly is too
confusing. We can rip out code we want to share later.
wip
wip
wip
wip
Sending uses a connection pool
fix send mail
WIP of pluggable backends for sending mail
Send code restructured (as in D83)
WIP

Test Plan:
Works as before -
Use test_sendmail.py to send a test email to kavya@inboxapp.com, kavya719@gmail.com
Note the test uses test account id = 1, so there's atleast one account stored in the db.
Testing send
Changes