Repo commits

Added repo commits.
TODO:
- [x] Can you also add a cli tests that does the flow
- [x] Remove test TODO
- [ ] Test existing repo migration
- [ ] DictionaryThriftStorage store should return an Id, not a path
- [ ] Two increment functions, for either side of the Commit.
- [ ] Investigate if it should use the latest id, or the current one.
- [ ] Is it racing to write the commit?

Can this call methods in `Metadata`?