evolve: store obsmarkers to be deleted in evolvestate
There are operations which don't create a new node rather they just obsolete one
of the unstable node in favour of existing one. In such cases if a further
resolution leads to conflicts and user calls `evolve --abort` or `evolve
--stop`, we might need to delete that obsmarker. So let's store such obsmarkers
in the evolvestate.
evolve: factor out logic to merge branches in separate function
This patch moves the logic to merge branches while resolving content-divergence
to a separate function.
This makes code clear and better to understand.
tests: add more test of --stop while resolving content-divergence
This tests the --stop flag when conflicts occur while relocating one of the
divergent changesets.