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
Add option `--all` to display all the root TFS branches
add `init-branch` features to `branch` command
correct messages...
Remove Run(params string[]) possbility + other refactoring
Move some code to GitRepository and use libGit2Sharp api