[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)
Sorry for the long delay.

I'd really like to avoid using a static struct. It's basically a global variable. :stuck_out_tongue_closed_eyes: Even though it's not too much different in practice, I'd much prefer an object in the structuremap container that's marked as a "Singleton". There are a couple other places where that's done.