make Git::Reference a ParentProvider
added Reference::commitOperation()
added Repository::headBranch() -> Resolve HEAD to a BranchRef object
Git::Repository isn't a ParentProvider anymore

instead headBranch().commitOperation() is called when performing a commit operation on the repository.
prevent commit operation on a TagRef