defer costly operations
Move flags and other metadata to a separate doc.

This change will allow for quicker access times, and smaller
syncs since the fields that change more often will fall in a
pretty small document. For the big raw message, we only need
to sync once.

Also, implemented multipart interface for messages.
This will need additional migration helper in --repair-mailboxes.
inlineCallbacks all the things!