i18n: cache translated messages per encoding
This is a simpler workaround alternative to D958, "i18n: clean msgcache when
encoding changes." The cache won't be bloated unless you run tons of commands
with different --encoding options on command server, or serve many repositories
of different web.encoding options on hgweb.
The test was originally written by Jun Wu.
Differential Revision: https://phab.mercurial-scm.org/D1053
templater: fix ifcontains() to handle type mismatch gracefully
This was unintentionally changed in
ee0d74083a22. Since ifcontains() takes
needle of any types, it shouldn't abort depending on the given container type.