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
bootstrap automatically the remote we are working on if needed
Extract a Bootstrapper class.
Unit test for Autobootsrap when using -I option

Auto bootstap 'tfs/default' for first remote created
Unit test for Autobootsrap when using -I option on a branch

Auto bootstap 'tfs/default' for first remote created
Auto bootstap 'tfs/branch' for second remote created

Extand IntegrationHelper to be able to create a more complexe test case...
Unit test for Autobootsrap when using -I option on a merge commit

Extand IntegrationHelper to be able to create a more complexe test case...
remove /bin/sh option added
Auto selection of the tfs remote is now the default behavior
AutoSelect remote only for command that need it
When no remote found, return DefaultRepositoryId `default`
refactoring (same behavior)
Adjustements on comments and messages