Tag interface, part 3.

Summary:
 * Delete local actions code. Local actions are now expressed solely by
   adding/removing tags. Refactor the rest of the existing actions code as a
   result.

 * Add a listener service which checks the transaction log for tag mutations,
   and executes the corresponding syncback actions.

 * Expose 'unread' and 'archive' as tags on threads.

 * Support dependent tag mutations (e.g., remove the 'inbox' tag when you add
   the 'archive' tag, and vice versa).

 * Refactor drafts code to work with new syncback infrastructure. In the
   process, move a bunch of provider-agnostic stuff out of the Gmail-specific
   code.

Test Plan: Unit tests added.

Reviewers: spang, kav-ya

Reviewed By: kav-ya

CC: mg

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