Move treeDiff code as a separate command.
cleanup.
Make checkout use Diff.diffTree instead of merge.diffTree.
cleanup git merge.
Addressed comments.
Merge pull request #2370 from dart-lang/refactor_git_merge

[Refactor] Refactor git merge