Refactor folder sync status management.

Summary:
Every sync monitor creates a single reader/multiple writer queue, which
will contain folder sync status events. The sync monitor spawns an
additional greenlet to consume the events in the aforementioned queue
(i.e., consumer greenlet). Greenlets executing the sync engine (i.e.,
producer greenlets) don't perform table (ImapFolderSyncStatus) updates
anymore; they push events to the queue, which is consumed by the
consumer greenlet that is in charge of performing table updates.

Events are tuples consisting of a folder identifier and the new state of
the producer greenlet managing said folder. The consumer greenlet keeps
a map from the folder identifier to the table (ImapFolderSyncStatus)
entry.

Test Plan:
Fire up the virtual machine, start bin/inbox-start and bin/inbox-auth to added
a few accounts. Start bin/redwood-start admin and double-check that folder sync
status gets changed from 'initial' to 'poll'.
This set of changes should not modify the behavior of inbox as a system.

Reviewers: khamidou, emfree

Reviewed By: emfree

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