largefiles: avoid dynamically subclassing context instances
E.g. copies.pathcopies() compares context objects for equality and
basectx.__eq__ compares the type. But since largefiles was dynamically
creating classes, they would all be unequal. That led pathcopies(),
after some changes I made, to not short-circuit to get copy info only
from the dirstate. This patch fixes that short-circuiting (and other
places where context are being compared for equality).
Differential Revision: https://phab.mercurial-scm.org/D7143
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ echo 'base' > base
$ hg ci -Ambase
adding base
$ hg qnew -mmqbase mqbase
$ hg qsave
$ hg qrestore 2
restoring status: hg patches saved state