Fetch merge changesets : find them and add the corresponding commit as parent commit

For the moment, just a trace if the commit for the parent changeset was missing because not yet fetched :(
rcheckin merge commit as a merge changeset

- find the tfs repository path of the parent commit
- create changeset of type merge with the previously found tfs repository path
- Resolve conflicts found by TFS by "AlwaysAcceptMine" because merge have already been done with git
refactoring InitBranch to prepare init branches with interdependencies
Add an option to stop the fetch when a merge commit couldn't be created

This option will permit to fetch the other branches to solve the dependency
Fetch all the merge changesets and interdependant branches when clone --with-branches
fetch (recursively) missing commits from merged branches
Stop when a merge commit was done with a tfs tracked branch without all commits checked in

...otherwise the merge commit won't be materialized :(
Correct UnitTests
Correct GetTfsCommit
correct a rcheckin message
refactoring and space corrections
When analyzing a changeset, there could be multiple remotes involved
Merge branch 'master' into fetch_merge_when_no_commit

Conflicts:
	GitTfs/Commands/Clone.cs
	GitTfs/Commands/Fetch.cs
	GitTfs/Commands/InitBranch.cs
	GitTfs/Core/IGitRepository.cs
	GitTfs/Core/TfsInterop/ITfsHelper.cs
correct spaces...
Reinsert support for '--no-fetch' option...
Unit Test for cloning repo with merge changeset
update doc
Build on VS2008.
cleaning...
Rewrite UnitTest to be more understandable