Refspec: create the type to wrap refspecs
Refspec: implement transform functions
Refspec: add documentation
Remote: handle the case of a missing url
Remote: allow access to the push url
Tree: let contains look in subtrees

Allow looking in subtrees as a convenience in the 'contains'
function. As slashes are not allowed to be part of the name of an entry,
there is no ambiguity in what they mean.
Merge remote-tracking branch 'carlos/push-url'
Merge remote-tracking branch 'carlos/tree-deep-search'