ITfsHelper.GetRootChangesetForBranch(..) now gets the proper root changeset for a merge.
Better handles finding the root changeset on a renamed branch and init/create succeeds provided that the (now deleted) source branch was already fetched to the local git repo.

* trace output will surface the original branch name of the renamed branch we are init/creating.

* stdout will only surface the changeset number.

* it would be nice to pass more detailed information back from the call to find the root changeset, a richer object than just an int ChangesetId, so that the consumer with access to stdout can surface that as a possible suggestion to the end-user.
cleaning up.
Merge branch 'master' into init-branch-across-rename
incorporating @sc68cal's suggestions.
incorporating @thomaswurtz's feedback from issue #298 https://github.com/git-tfs/git-tfs/pull/298#issuecomment-12757119
Revert whitespace changes so I can focus on what actually changed.
Cleanup.
Merge master and #299.
Verify if querying branch informations are supported
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
Add move and delete branch option to `branch`command

and add a DeleteTfsRemote() and MoveRemote() in GitRepository
Add create branch option to `branch`command

+ other small refactoring
Add option `--all` to display all the root TFS branches
branch command description
Add `init-branch` features to `branch` command
+ rewrite Run() methods
+ creation branch is no more an option but the main action (like git branch ommand)
Control to detect bad command use
better branch description