Git merge ui

1)Re-writes git merge to support conflict.
2) Adds a "resolve" option in context menu for conflicts.
3) Displays the modifications done by `git merge` in the tree.
4) Asks for user's confirmation before the merge.