Add `conflict_type` to hold the reason of unmerged

Detect rebase, merge, cherry-pick and stash applying.
Derive conflict info for cherry-pick and stash

Use .git/MERGE_MSG when available.
Simplify diff info generation, change some wording
Fix some git_dir file reading

- Use `s:git_dir()` instead of hard coded `.git`.
- head_name should allow characters other than `[a-zA-z]`.
Fix current commit detection for rebase info

In .git/rebase-merge, use `stopped-sha`, not `orig-head`.
UI for DD, UA, AU unmerge situations

Occurs when renaming single file into two names, in two branches.
UI for UD, DU states, improve window splitting
Rename `s:get_diff_status_content` function

Rename to `s:get_content_for_status`, since it's not merely used for
'diff_status', but also for 'DU' status from `git status --short`.
Add doc for merge conflict usage