Rename branch and add file

@pmiossec - re https://github.com/git-tfs/git-tfs/pull/692#issuecomment-68182885

> Maybe use an extension method to add an overload of the Fetch methods, so there's less churn all over.

The first 2 commits do this.

> I would pull the two rename-related state fields out into an object or a struct, and call it something like RenameState or RenameContext or FetchContext. This is just a different way to do the thing you did with the interface. This could let you create a single context object in the caller (InitBranch, if I read it right), and not worry about extracting information from the FetchResult.

The last commit does this.

If you like them, feel free to cherry-pick onto your branch.