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
echo a > a
hg ci -d '0 0' -Ama
hg an a
echo "[ui]" >> $HGRCPATH
echo "strict=True" >> $HGRCPATH
hg an a
hg annotate a
echo % should succeed - up is an alias, not an abbreviation
hg up