Implement a system of driver for being able to switch between git calls and libgit2 Should also be useful when we want to implement networked git calls