Copied more of git
Trees now update their children based on file update events
Created proper Commit object - this shouldn't be integrated into the tree