[SCHEMA] Client sync API, version 1.

Summary:
 * Modify the Transaction schema, replacing the 'additional_data' field by the
   'public_snapshot' field. When we generate a transaction log entry for an
   object `obj`, use 'public_snapshot' to store the API representation of obj
   at that time. (This lets us easily filter and expose transaction log entries
   in the API).

 * Simplify the code in models/revision.py(delta), removing a cryptic part of
   the original sqlalchemy example code that we weren't actually using.

 * Add API endpoints.

 Known issues:
 * Changes to the 'tags' field for messages may not be correct (this is because
   the tags aren't actually mapped property of the Message object in any way,
   so sqlalchemy can't detect tag changes as a change on the Message object).

Test Plan: Working on it.

Reviewers: kav-ya

Reviewed By: kav-ya

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