merge: fix spurious merges for copies in linear updates
We make better use of contexts to accurately identify copies that
don't need merges.
Add a simple test and update other tests.
#!/bin/sh
hg init dir
cd dir
echo bleh > bar
hg add bar
hg ci -m 'add bar'
hg cp bar foo
echo >> bar
hg ci -m 'cp bar foo; change bar'
hg debugrename foo
hg debugindex .hg/store/data/bar.i