Let auto selection of remote (`-I`) works in empty repository

Using -I option now works when `init` a repository (instead of `clone`)
and when there is no commit (or just plain git commits).

- take the only one when only 1 tfs remote found (that should be `default`...)
- throw an error when there is no tfs remotes found (not a git-tfs repository!)
- threw an error if there is more than one branch (that should never happen
except if the user add manually remotes in the .git/config file)
Merge pull request #560 from pmiossec/autoselect_remote_with_empty_repository

Let auto selection of remote (`-I`) works in empty repository
Implemented experimental GetLastChildTfsCommits
When fetching, GitRepository will scan for untracked TFS changesets in all refs, not just head.
Cleaned up MoveTfsRefForwardIfNeeded
Added a few distinct filters in MoveTfsRefForwardIfNeeded avoid duplicate head updates.
Merge branch 'childFetchForward'