Make Committing Work 

- [x] Add a recursive tree builder (This means that you can actually commit a file in a folder :sparkles:)  
- [x] Add Initial Commit support
- [x] Move almost working code to model classes
- [x] Tests