Added transaction support to MongoDB and refactored transactions in the file backend such that modifications to the DB state are only visible AFTER a commit (this makes the behavior consistent with the MongoDB backend).