Skip fetching merged items without changes from TFS
`FindCommitByChangesetId` cache added
Don't cleanup clone directory when fail fetch during `clone`

It's a shame to end with a clean directory after (perhaps)
hours of fetching history because a problem during a fetch
cleanup workspace directory even when fetch problems
update release note
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 pull request #569 from KindDragon/changeset_id_cache

`FindCommitByChangesetId` cache added
Start a test for #578.
Fixed null reference issue with first commit in IntegrationHelper.
Test crash fixed
Merge pull request #583 from KindDragon/changeset_id_cache

Test crash fixed
Merge pull request #568 from KindDragon/improve_fetching_merge_changeset

Skip fetching merged items without changes from TFS
Add an help message...
Better management of GitTfsException
Better error reporting