Detect a rename changeset (where all the datas are deleted) and prevent it

and Add Unit Test in ChangeSieveTests to support branch deletion
Ensure that other deleted directories don't affect this project.
Also don't fetch anything if it's just going to be deleted and ignored.
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
Fix for #574. If multiple changesets are found in parent tree, the latest changeset will be selected.
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
Refactored changeset variable name in TfsWriter.WriteWith.
Merge pull request #569 from KindDragon/changeset_id_cache

`FindCommitByChangesetId` cache added
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
 Better error management when command merge fail