Add functionality to create a branch from a repository using rugged
This branch adds a new create_branch
to the Repository object that uses Rugged instead of shelling out to a new process.
This also adds spec coverage.
In case of a failure this will raise an InvalidRef exception covering both the cases of the branch already existing and using an invalid start_point.
cc @DouweM