Add move and delete branch option to `branch`command

and add a DeleteTfsRemote in GitRepository
Add create branch option to `branch`command
Refactoring Run() `branch` command and permit to use Run(params string[])
Better use of RemoteInfo to move TFSRemote
Don't return unvalid remotes

The one without Tfs URL or path...
It could happen when renaming a tfs remote with parameters no more supported
Verify if querying branch informations are supported