hgmerge: various cleanups
Details:
- put temporary file names into variables
- make all temporary file names end with random part
- cleanup FileMerge handling
- do not use hardlinks in FileMerge change test (breaks on FAT)
- try harder to keep file mtime unchanged in case of failed merge