The scenario in issue 5457 gets reported every now and then by our
users (Google developers). This patch adds a fix for it by preserving
existing copies even if the source file no longer exists. That's a bit
of hack, but it's effective and much simpler than the other
alternatives we've considered (such as storing the copy information in
obsmarkers, which would mean that copy tracing would have to follow
both graphs).
The fix only works when copies are stored in changeset extras or
sidedata because the filelog record needs to have the old file nodeid,
which doesn't exist in the parent manifest.