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 a
cd a
hg init b
echo x > b/x
echo '# should print nothing'
hg st
echo '# should print ? b/x'
hg st b/x
hg add b/x
echo '# should print A b/x'
hg st
echo '# should forget b/x'
hg revert --all
echo '# should print nothing'
hg st b