Adding fetch and clone functions to Repo
Adding each_commit_starting_at in Repo
Adding find_first_non_merge_parent in Repo
Commit validator should fetch before determining if the commit exists or not