Transactions: Perform basic checks before starting

Check the revisions in our database before starting
our pseudo-transactional update.
Transactions: Revert docs on conflict

If there is a document conflict during a
transaction, revert the docs to how they
were when the transaction began.
Data: Do not add stories if data conflicts

When trying to insert a new story, fail
the call if too many things are happening
at once and we can't maintain data integrity.