Previously the code caches i18n._ results in module variables. That causes
issues after an encoding change. Instead of invalidating them manually, we
now just recalculate the translated messages every time filterpatch gets
called.
This makes test-commit-interactive.t pass regardless of whether chg or
demandimport is used or not.
.. api: patch.messages now lives in patch.getmessages().
Extensions adding new messages should now wrap the `patch.getmessages` method instead of changing `patch.messages` directly.