[DEPENDENCIES] Basic multicore support for SyncService.

Summary:
We implement super ultra basic multicore support by splitting account
syncs across CPU by (account.id % 4), which does not take into account
system load in any way whatsoever. We can still shard across machines by
changing an account's `sync_host`.

gipc is required in order to prevent multiprocessing from duplicating
parent greenlets into child processes.

My goal here was to retain deployment+development simplicity, hence
choosing to use Python's multiprocessing library rather than a shell
script wrapper or CLI arguments + multiple supervised services.
I had to remove the auto-reloader for mailsync since it doesn't play nice with
gipc.

In the meantime, we also removed SyncService's dependency on ZeroRPC,
and instead do all account actions by polling for changes to the
database. bin/inbox-sync now simply marks the database and returns
immediately instead of waiting on an RPC call. Nothing should be talking
directly to the mail sync process now. Also, each process has its own
connection pool; SQLAlchemy pools are not safe for concurrent access.

Test Plan: manual testing

Reviewers: emfree

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