Allow setting the fetch and push refspecs, which is useful for creating new refspecs.
git_refspec_transform_r assumed that the reference name passed would be only a branch or tag name. This is not the case, and we need to take into consideration what's in the refspec's source to know how much of the prefix to ignore.
Clay is the name of a programming language on the makings, and we want to avoid confusions. Sorry for the huge diff!