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.
Fix for #574. If multiple changesets are found in parent tree, the latest changeset will be selected.
Assemblies loading for Policy Evaluator and Checkintool improved. Refs #258
Refactored changeset variable name in TfsWriter.WriteWith.
Move the path resolver to the constructor.

This will ensure that it's in place before evaluating
checkin policies, which is when it is needed, without
expanding the interface of ITfsHelper.
Check to install resolver only once
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
Unit Tests for Auto select remote