tests: fix negated test_i18ngrep calls

The helper function test_i18ngrep pretends that it found the expected
results when it is running under GETTEXT_POISON. For this reason, it must
not be used negated like so

   ! test_i18ngrep foo bar

because the test case would fail under GETTEXT_POISON. The function offers
a special syntax to test that a pattern is *not* found:

   test_i18ngrep ! foo bar

Convert incorrect uses to this syntax.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Git 2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff: normalize text encodings on the fly

This is a proof of concept for normalizing text encodings
before comparing files. The resulting diff can't be applied,
of course, which puts it in roughly the same boat as
textconv (and we rely on the textconv infrastructure here to
do it).

You can't use a regular textconv to do this, because we want
to detect whether to use it based on the file's _content_,
whereas textconv is a gitattribute triggered by the
_pathname_.

This builds on libicu for the detection, so you need to turn
the HAVE_LIBICU knob in the Makefile. Unfortunately, libicu
is quite slow:

  $ time git log -p -1000 >/dev/null
  real    0m0.443s
  user    0m0.408s
  sys     0m0.032s

  $ time git -c diff.converttext log -p -1000 >/dev/null
  real    0m8.738s
  user    0m8.692s
  sys     0m0.056s