[NeedReview]Rename branch and add file

Should fix #660 and #650...

The main goal of this PR, is to manage a rename changeset
as a changeset belonging to the new renamed branch and not
as belonging to the old branch (as done before).

This way, other changes than the rename could be included in the 
newly created commit (and not be ignored as done before
because the changes are made inside the $/new/tfs/branch/path)
@spraints Can you review that PR and tell me if it suit you?
Especially the use of this `static struct` that contains the data
for handling the rename.

It's, for the moment, the best thing have found to not complexify too much 
the source code.

The idea behind that is:
- detect a rename changeset when fetching the old branch
- do not process this changeset as a changeset of the old branch but store in the struct the data that will be needed to process the rename changeset
- fetch the new branch and process the first rename changeset as a changeset of the new branch.

I used a `static struct` to not be obliged to return the data with the `fetchResult` (that's not a problem) but also to modify a lot of method signature to pass these data.

I'm not 100% happy but the resulting source code is perhaps much clearer....