vc: Add support for showing BASE in Git conflicts
This commit uses Git plumbing to reconstruct a merged conflict file that includes diff3 conflict markers, and then extracts those markers to replace the traditional two- or three-way conflict with the BASE revision in the middle pane. The addition of the '==== BASE ====' string is, while ugly, necessary in order to actually guarantee some kind of conflict. Without a unique string there, it's entirely possible that the differences between the panes will show up as, for example, an insertion from LOCAL to BASE and a modification between BASE and REMOTE.
Showing with 39 additions and 1 deletion