Add Diff#new_content to retrieve the resulting sequence

Will be used mainly after a merge to extract the resulting file.
Add Repository#merge

It uses Commit#common_ancestor, VCSToolkit::Merge.three_way and
Diff#new_content to merge two commits with common history
Repository#merge works even without a common ancestor
Repository#merge returns lists of changed and conflicted files