Clean up some merge logic
- rename mode to branch_merge
- use explicit update mode
- use negative mtime for updates that set mtime
- expand some cryptic variable names
- elaborate merge dirstate comments
- remove redundant manifest lookup for non-merge case
- remove impossible merge case
- fix up test cases
abort: repository a/.hg not found!
255
requesting all changes
abort: error: Connection refused
255
abort: repository a/.hg not found!
255
abort: destination '../a' already exists
1
abort: repository a/.hg not found!
255
abort: destination 'q' already exists