Fix performance regression in addremove command.
When I rewrote addremove, I lazily put a call to repo.changes in,
which was unnecessary and slow. This is a new rewrite, preserving the
file name behaviour, but replacing the call to repo.changes with a walk,
which is much cheaper, and avoids calls to os.stat on all but files that
have probably been deleted.
\.orig$
\.rej$
~$
\.so$
\.pyc$
\.swp$
^build/
^dist/
^doc/.*\.[0-9]$
^MANIFEST$
^.pc/
^patches/
^mercurial/__version__.py$