copies: Keep changelog sidedata file open during copy tracing
Instead of having a callback that opens and closes that file many times,
a add and use a context manager method on the `revlog` class that keeps
files open for its duration.
Differential Revision: https://phab.mercurial-scm.org/D10888