support stashing when there are conflicts

When a stash is created when there are conflicts then create a fake
index commit whose tree is equal to that of HEAD and create a worktree
commit which contains the conflict marker.

It's not recommended to create such stashes, but we automatically do
create such stashes when the backup mode is turned on - commits with
conflict markers are better than losing information.
Fix some typos in the CONTRIBUTING document
Merge pull request #1672 from RadicalZephyr/master

Fix some typos in the CONTRIBUTING document
Merge branch 'master' into next