desktop: Minor cleanup of the last commit

* read-desktop.c (desktop_lex): Undef the APPEND macro before defining.
vala: Simplify the parsing logic

* x-vala.c (phase3_get): Factor out the buffer allocation as a
macro.
tests: Fix previous commit of Vala scanner test

* xgettext-vala-1: Don't copy the test program out of the test
directory.  Fix commit 2ff7a105.
tests: Improve test coverage of Lua scanner

* xgettext-lua-1: Test nested and unmatched brackets.
tests: Test msgcat --sort-by-file option

* msgcat-20: New file.
* Makefile.am (TESTS): Add new test.
msgfmt: Fix potential access to uninitialized value

* msgfmt.c (msgfmt_desktop_bulk): Don't dereference potentially
uninitialized value.  Spotted by clang-analyzer.
xgettext: Avoid potential null-dereference

* xgettext.c (arglist_parser_done): Avoid potential
null-dereference.  Spotted by clang-analyzer.
tests: Avoid minor memory-leak in gettext-8-prg

* gettext-8-prg.c (main): Release allocated memory.  Spotted by
clang-analyzer.
tests: Fix the last change to gettext-8-prg.c

* gettext-8-prg.c: Include <assert.h>.
(main): Check return value of 'gettext'.
maint: Update THANKS file

* THANKS: Add contributors since 0.18.2.
msgfmt: Suppress compiler warning

* msgl-check.c (check_header_entry): Don't declare unused variable
'nrequiredfields'.
autogen.sh: Copy intl.m4 and po.m4

* autogen.sh: Copy intl.m4 and po.m4 to gettext-tools, if Gnulib's
version are older.
intl: Bump m4 serial

* intl.m4, po.m4: Bump serial to avoid any conflict with Gnulib's
version after Gnulib commit 71be4c87.