Make GitError to derive Show trait
Implement a simple constructor for Repository
Implement a max_by() function
Make most of the objects cloneable
Implement a rudimentary commit finding logic
Add a check for merge commits;

We do not want a find() to end up with duplicates.
Refactor commit finding to use map and filter
Implement branch::tip() for finding the branch tip commit
Implement a method in branch module for finding commits on that branch