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.