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.
Refactored changeset variable name in TfsWriter.WriteWith.
Add an help message...
Better management of GitTfsException
Better error reporting
 Better error management when command merge fail
Fix unshelve

The optimization to prevent downloading of ignored files broke
unshelving[1]. A shelveset is treated as a changeset by git-tfs, but there
is no changeset version for it, so you can't ask the workspace to get a
shelveset by version, instead the shelveset itself needs to be responsible
for populating the workspace with the correct files[2].

[1] 351ed3d69faf6a110253a052c4c94cf331b846ce
[2] 26fe4ad2697530bdf9c6b70162eb6e413ee0df44
Merge pull request #572 from pmiossec/better_fail_clone_management

Better fail clone management
Merge pull request #588 from kgybels/unshelve

Fix unshelve
Merge pull request #591 from holstebroe/I574

If multiple changesets are found in parent tree, the latest changeset will be selected.
Update release notes with #591