Add transaction-like support to DataTree.

- This is needed to support serving batch requests(all-or-nothing)
- Like version control system, you can make changes in staging area, and
commit or abort it, before committing the changes will not be visible.
Merge pull request #74 from EasonLiao/transaction

Expose multi-op from DataTree